版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章数据库设计4.1原理数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据。数据库设计是一个软件项目成功的基石,但很多从业人员都认为,数据库设计其实不那么重要,现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。因为多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单,其实不然,数据库设计是值得深入研究的,因为其完全决定了系统的优化程度。完整的数据库设计一般包如下部分:需求分析;概念结构设计;逻辑结构设计;物理结构设计;验证阶段;运行与维护。在讲解数据库设计之前,先大概的说说数据库系统设计的原则,其实,关于数据库设计的
2、原则,版本居多,不同的人根据不同的场景不同的需求不同的系统去描述,可定会出现不一致,但万变不离其宗,所有数据库设计的原则无例外是为了实现数据库的最优,从这个宗旨出发我们自己探讨出了以下几条关系数据库设计的原则:1明白自己的系统为OLTP系统还是OLAP系统不同的系统其侧重点是不一样的,OLTP系统最注重的是数据增删改查操作的效率,而OLAP系统注重的是分析处理,所以不同的系统数据库设计也不一样;2降低对数据库功能的依赖功能的实现,一般要求通过程序来实现,而不是大量的依赖数据库。严格遵从数据库三范式严格遵从数据库三范式,避免数据的冗余等问题产生;尽量保证记录的唯一标识存在;严格遵循概念模型到逻辑
3、模型的转换规则;星型模型、雪花模型的合理运用。4.1.1概念结构设计早期的数据库设计,在需求分析阶段后,就直接进行逻辑结构设计,由于此时既要考虑现实世界信息的联系与特征,又要满足特定的数据库系统的约束要求,因而对于客观世界的描述受到一定的限制,同时,由于设计时要同时考虑多方面的问题,也使设计工作变得十分复杂。1976年P.P.S.Chen提出在逻辑结构设计之前先设计一个概念模型,并提出了数据库设计的实体-联系方法(Entity-RelationshipApproach)。这种方法不包括深的理论,但提供了一个简便、有效的方法,目前成为数据库设计中通用的工具。有许多商业软件支持E-R模型,如Pow
4、erDesigner、ERwin。概念模型E-R图主要是便于和需求人员进行交流沟通,它形式简单明了,可以简单清晰的描述需求中的各种概念及他们之间的关系.使用E-R模型来进行概念模型的设计通常分两步进行,首先是建立局部概念模型,然后综合局部概念模型,成为全局概念模型。E-R图设计E-R图分为局部E-R图和全局E-R图。E-R模型基本符号:实体的表示:用长方形;联系的表示:用菱形,如1:1、1:n(m:l)、(m:n);属性的表示:用椭圆形。确定实体与属性的原则:能作为属性的尽量作为属性而不要划为实体;2作为属性的数据元素与实体之间的联系只能是1:n的联系;3作为属性的数据项不能再用其他属性加以描
5、述,也不能与其他实体或属性发生联系。例如某公司员工信息的E-R图:4.1.2逻辑结构设计所谓逻辑结构设计就是将基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构的过程。逻辑结构设计的过程分为以下几点:将概念结构转换为现有DBMS支持的关系、网状或层次模型中的某一种数据模型;从功能和性能要求上对转换的模型进行评价,看它是否满足用户要求;3对数据模型进行优化。逻辑结构设计的原则:一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键;一个联系转换为一个关系模式,与该联系相连的每个实体型的键以及联系的属性都转换为关系的属性。关于逻辑结构设计时实体之间的关系,有
6、四种情况,分别做一说明(注:图片来自网络):1若联系为1:1,则相连的每个实体型的键均是该关系模式的侯选键。如垂件(零件号培件名)材料(利料名愉格障荷卮7_J牌戈禅理关荼模型2若联系为1:n,则联系对应的关系模式的键取n端实体型的键:Cffi爆怎股siU司別(工号姓名摊别年龄ii竝吟级)汽车梓号7TTwmct号车号隹動戸】关系楫嗨若联系为m:n,则联系对应的联模式的键为参加联系的诸实体型的键的组合,如图:供应商(编号姓名地址)供应(编号零件号)零件(零件号,零件名)n._t4.若实体与实体之间存在依赖关系,那么联系就是代表了两个实体之间的联关系模型4.1.3物理结构设计根据特定数据库管理系统所
7、提供的多种存储结构和存取方法等,依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”4.2ERwin应用说明Erwin的全称是AllFusionERwinDataModeler,是CA公司AllFusion品牌下的建模套件之一,用于数据库建模。是关系数据库应用开发的优秀工具。ERwin可以方便地构造实体和联系,表达实体间的各种约束关系,并根据模板创建相应的存储过程、包、触发器、角色等,还可编写相应的PB扩展属性,如编辑样式、显示风格、有效性验证规则等,同
8、时可以实现将已建好的ER模型到数据库物理设计的转换,即可在多种数据库服务器(如Oracle,SqlServer,mysql等)上自动生成库结构,提高了数据库的开发效率。421实体Erwin中的实体有两种:独立实体和依赖实体。实体被指定作为独立实体,或依赖实体,取决于其键的获得方式。独立实体由方角盒来指定,独立实体不依赖于模型中任何其它实体来标识;依赖实体被指定为圆角盒,依赖实体依存于模型中的其它实体,如图:独立实体依赖实体PARENT-ENTITY/CHILD刑ITYchild-keyparent-key(FK)parent-key)4.2.2实体间的关系实体间的三种关系:1标识关系(iden
9、tifyingrelationship);多对多关系(many-to-manyrelationship);非标识关系(non-identifyingrelationship)。标识关系是指把实体1中的主键作为实体2中的外键,且作为实体2的主键,如图:非标识关系是指把实体1中的主键作为实体2中的外键,但不作为实体2的主键,如图:00PARENT-ENTITYCHILD-ENTITYparenl-teychild-keyparent-key(FK)4.2.3Erwin建模Erwin可以设计三种模型:logicalmodel、physicalmodel、logical/physicalmodel。如
10、果只做文档,可以选择只建立logicalmodel,如果是做项目,需要同时使用logicalmodel和physicalmodel,physicalmodel是用于生成或者导出脚本的。建立新的数据模型点击File/New弹出建模窗口如下,可根据具体情况做出相应选择(选的目标数据库最好有驱动):建立各个实体方法一:点击实体图标,如图:aILts方法二:右击左边窗口中的entities,然后单击new也可以新建一个实体,jDilvoltVfcliLjiL3E勺50dj如图:_KIIFi-,!onllrilDFulu舸1;占-:*心山“凸bnH哂Lilt橙血LYim1机It!141$門hHfkEud
11、Ar观*:耳已jM总鈕堂駁亀as?圧丄3金*Ei41X3芒Q4SAAii=bI6S令jHBFid2戒网门啊rw石气141fait4nikL|IE巧包SuhJtAruIf创如创号1VvlLdiLtndskBuLi亓修改实体名称方法一:单击实体名,按F2键可以对实体名称进行修改;方法二:右键单击欲进行修改的实体,选择EntityProperties;方法三:双击实体修改。4列的增删:方法一:右键单击所选实体,选择Attributes,在弹出的Attributes窗口中添加,删除或修改属性;方法二:单击所选实体,按tab键也可以进行添加,删除或修改操作。5创建约束、存储、触发器主键:Ww川&片m右击
12、所选实体,然后单击keygroups,然后选择实体的主键,如图:%!|:5旳|bl5丰乩】?iEtS=T口打*业.松日|/1極JL也札空属国陆羸懊札鶴XQ|Bi山加i乜庐曰吓3J口口*UfcEI;|kfil:!ll|L*f:rtL112fi|Z*|?|-Iti-LJE*ItkceifJllB底Sd冲PTtAr*!容TlhRlfsirwE寻VilidbtLMKLtxPlMwdr二二二JJ空I0KI索引:右击所选实体,选择Indexes,如图:Employee迅;tHflRU8)nae:CHAR(18)address:CHAR(Isbtepfop和ties衬Indexes,StoredProced
13、ures.RrePostScripts,.ObjectFontStColor,扉AutoResize存储过程:单击实体右键StoredProcedures,如图:pnployeelid:HAJfrencesS1TP1.7Lin.庐AlLe4iHl心1-i.brwi11呵4.2.4正向、反向工程正向工程通过正向工程能够快速方便生成DDL数据库定义语言。选择Tools菜单,单击ForwardEngineer,如图:2idHAC1rialw二1HZy-包D4ftiini口Hdd!l片VJ.L*讥tonLultxIST心VilqP礙Stor*4Frw由ir”!SarLptTM-pLddMartFjpw
14、rd眄吟町5加期Genegg1b冗tsi曲kAddModdSrce.t-2yiK1Datab-ase|ReportReposit&ryT&IeWindowHe-I|:ChangeCurrentDEMS-.EditCurrentDBMS.DefaultPhysicalOptions.GenerateD曰七abase.Reverse-EngineerDatabase.ModifyDatabase.Ctrl-nGCtrl+REstimateDatabBweSize.Gens-rsteTes-tDats.GenerateExtraction&cnpts.Ctrl需hi任十DExecuteSQL.Con
15、figureConnections.Ctrl-l-Shift+EConne,ctii1Ctrl-I-Shift-i-NDisconnEctConnectionInfo-rmationLBB2.点击connect,打开对话窗口:然后点击Configuer按钮,弹出数据源配置ConfiguerDataConnections对话框:把页签切换到第三个ConnetionProfiles页签中,如果连接存在,选中就行,如果不存在,点击addDataSource数据库图标进行新增,弹出ConnectionProfileDefinition对话框如下图;此对话框中需要输入以下信息Connectionprof
16、ilename:输入数据库连接文件名,它会自动加上后缀名.dcp;Directory:数据库连接文件存放路径;可以任意;Connetctiontype:选择JDBC;DBMStype:数据库类型选择Oracle;Servername:服务器名称;也相当于对应PL/SQL登陆页面的数据库;Databasename:数据库名字;Username:登陆数据库名字;Password:密码JDBCDriverclass:驱动类;只要下拉框选择就行;JDBCDriverJarURL:访问的服务器路径JDBCconnectionfiles:驱动包;需要指向ojdbcl4.jar或者其他驱动的包的按钮路径;全
17、部设置如下图:8ConnectionPrcfileDefinition葵8ConnectionPrcfileDefinition葵Connectionparameters:Driver=orade.jdbc.OradeDriver,URL=jdbc:oradeIhin:(SlocalhoslTestConn亡匚tion.OKCancelH亡Ip点击TestConnection按钮进行连接测试;TestConneetian匕5)测试连接是否成功;成功会弹出成功或者失败消息框,测试成功后。点击确定按钮,返回数据源配置ConfiguerDataConnections对话框,列表中就会多出一个.dcp
18、文件,点击确定即可。4.3.2导出数据库表导出数据库表方法如下:1.启动PowerDesigner2菜单:File-ReverseEngineer-Database出来NewPhysicalDataModel对话框,DBMS选择0RACLEVersion10g选项,其他可以选择默认值:厂ConnecttosDatdSource厂ConnecttosDatdSource/NewPhysicalDataModelG-eneralExtendedModelDefinitioiLEModelname:DBMS:CopjtheDBMSdefinitioninmodel帮肋点击“确定按钮,弹出Databa
19、seReverseEngineeringOptions对话框:DatabaseReverseEngineeringOptionsEelectionDpticideTargetNolelCurrentDBMSORACLEVersionUsingscriptfiles:X|*aUsingadatasource:Oracle1hg_DatBSourGe.dcpReverseengineerusingadministratorspermissions取消确定3.然后在下拉框中选择我们之前建立的数据源文件,并再次输入数据库UserID和password:DatasourceODBCmachinedata
20、source:ODBCfiledatasource:匸回回Connectionprofile:Grade13g_DartaSource.dcpModify.Configure.LoginConnectCancel|Help点击Connection即可连接至数据库,并得取所有的数据库对象,在此我们选择所有的Table。最后点击OK,大功告成!4.3.3导入表到数据库1.用PowerDesigner创建实例的时候,切记所有的表名、字段、对象名称全部为大写,要不导入数据库会报错,如图:mTIPlymnluir(20JtpJc、NAMEvarrW2(2C2.如果PowerDesigner没有连接数据库
21、,先连接,方法前面已有讲解,如果已经连接了数据库,点击Database,在下拉框中点击GenerateDatabase,如图:3点击确定按钮,进入下一页,如图:4.点击RUN按钮,运行完即可,如图:jExecuteSQLQuery=回|邑富高9肖號|J6卷曲X|勺e|ij|Ln26,Coll/*Table;RKKTcreatetableRXXT(IDnumber(20)ncitnullNAMEvarchar2(20)5constraintPK_RXXTprimarykey(IDO);_/i/*Ind協;AAcreateindexAAonRKKT(MAKEASCRunCloseHelp4.4数据
22、库设计实例一选课系统在信息时代网,我们所需求的任何知识几乎都可以从网上得到,但是,纸上得来终觉浅,绝知此事要躬行,本节通过一个很常见的学生选课系统设计例子的练习,来加深大家对数据库设计的理解。4.4.1需求分析数据库设计的第一个环节就是需求的分析,学习过软件工程就知道,所谓项目开发,实质上就是实现需求,所以说一个确切的、复合实际的、可执行的、精简的需求是项目开展的第一步。本节的目的是让大家通过设计学生选课系统数据库,来实现对数据库设计的深入理解,学生选课系统在各大学校已经完全普及,网上相关的实例不胜枚举,此处就不做过多的分析说明,只需要掌握两件事:其一,本系统应该面向那些用户,换句话说就是谁可
23、以访问此系统;其二,用户访问此系统的目的是什么。搞清楚此两点,接下来的事情就明了了。4.4.2概念设计概念设计是将需求转换为数据库表的第一步,通过简单的分析,可以确定本系统有四个实体,具体如下:1.学生表E-R图:2班级表E-R图:学生编号性别学生姓名年龄学生表所属班级班级编号专业班级表班级名称)3课程表E-R图:课程编号课程名称课程表任课老师4.老师表E-R图:性别老师编号年龄老师表老师姓名5.学生表与班级表之间的局部E-R图(包含关系):专业属于班级名称性别学生编号学年龄所属班级学生姓名班级编号班级表6.学生表与课程表之间的关系E-R图:课程编号分数课程名称学生编号年龄成绩.任课老师课程表
24、学生表学生姓名所属班级4.4.3逻辑设计概念模型转换为逻辑模型,是将抽象的E-R图转换为可理解的逻辑结构的过程。概念模型转换为逻辑模型:班级表(班级编号、班级名称、专业)主键:班级编号学生表(学生编号、学生姓名、年龄、性别、班级编号)主键:学生编号选课表(学生编号、课程编号、成绩)主键:学生编号、课程编号课程表(课程编号、课程名称、老师编号)主键:课程编号老师表(老师编号、老师姓名、年龄、性别)主键:老师编号表结构说明:表4-1班级表结构字段名数据类型长度约束描述cidvarchar215主键班级编号cnamevarchar220不为空班级名称cmajorvarchar220不为空专业课程表4
25、-2学生表结构字段名数据类型长度约束描述sidnumber15主键学生编号snamevarchar210不为空学生姓名ssexvarchar24男or女性别sagenumber3年龄cidvarchar215外键班级编号表4-3选课表结构字段名数据类型长度约束描述sidnumber15联合主键学生编号courceidnumber15联合主键课程编号scorenumber5不为空成绩表4-4课程表结构字段名数据类型长度约束描述courceidnumber15主键课程名courcenamevarchar230不为空课程名称tidnumber15外键教师号表4-5老师表结构字段名数据类型长度约束描述
26、tidnumber15主键老师编号tnamevarchar220不为空老师姓名tagenumber3不为空年龄tsexvarchar24男or女性别4.4.4物理设计物理设计,也就是关系转换为数据库表的过程,可以将模型直接导入数据库也可以在数据库中运行建表语句,建表语句如下:1.班级表:CREATETABLEclass(cidVARCHAR2(15)NOTNULL,cnameVARCHAR2(20)NOTNULL,cmajorVARCHAR2(20)NOTNULL);CREATEUNIQUEINDEXXPKclassONclass(cid);ALTERTABLEclassADDCONSTRAINTXPKclassPRIMARYKEY(cid);了.课程表:CREATETABLEcource(courceidNUMBER(15)NOTNULL,courcenameVARCHAR2(30)NULL,tidNUMBER(15)NOTNULL);CREATEUNIQUEINDEXXPKcourceO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《工程测量角度测量》课件
- 电气培训大纲
- 建筑工程借用资质的简单合同范本
- 二零二四年份知识产权质押协议3篇
- 二零二四年度高品质住宅小区住宅销售合同3篇
- 基于2024年度项目的风险管理合同2篇
- 运维协议的安全协议
- 幼儿园小班世界地球日活动方案
- 2024年度委托加工合同的加工要求与产品质量3篇
- 解除股份合作协议书
- 2024新版《药品管理法》培训课件
- 高空作业时的安全注意事项
- 智研咨询发布:中国铜铝复合板带行业竞争格局及发展前景研究报告
- 2024年国家公务员考试《行测》真题卷(行政执法)答案和解析
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 医院助理全科医生培训基地自评报告
- 幼儿园课件:手机本领大-大班-社会
- 生涯发展报告 (第二版)
- 宣传片验收单.doc
- IEC-68-2-1-试验方法
- 过去时歌曲-yesterday-once-morePPT优秀课件
评论
0/150
提交评论