物理数据模型_第1页
物理数据模型_第2页
物理数据模型_第3页
物理数据模型_第4页
物理数据模型_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

View_1编号库存分类编号名称描述编号供应商Id产品编号卖价进价状态图片名称产品编号分类编号名称描述图片View_1编号库存分类编号名称描述编号供应商Id产品编号卖价进价状态图片名称产品编号分类编号名称描述图片InventoryCategoryItemProduct.J(5)单击”确认”,完成视图创建过程。1 物理数据模型的深入设置1.1视图计算机数据库中的视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。在SQLServer中视图定义了一个SQL查询,一个查询中可以查询一个表也可以查询多个表,在PD中定义视图与在SQLServer中定义查询相似。例如:EStore中,我们可能经常需要在查看某个商品的信息的同时,需要看到该商品是属于哪个产品,哪个分类,库存还有多少。这个操作需要涉及4个表,每次查询的时候如果都使用标准的查询语句进行连接查询无疑是很麻烦的,对系统的开销也比较大。因此,可以建立一个视图,该视图显示的信息就包括商品信息Item表和产品Product表中的产品名称,产品分类Category表中的分类名称,以及库存Inventory表中的库存信息。1.1.1为图表中已选定对象创建视图(View)在模型图表中选择要操作的表(Table)或视图(View),这个例子中为商品信息Item表、产品Product表中、产品分类Category表以及库存Inventory表(使用Shift连选)。选择Tools->CreateView,这时可以看到已经模型图表中会出现一个视图图符,其中显示出了所选定的表和视图中所有字段,如右图:上半部分为其显示的字段信息,下半部分为涉及的表。双击刚创建的视图图符以打开视图属性(ViewProperties)窗口。输入相应的Name和Code,同时可以通过不同属性页对视图属性进行进一步详细设计,如在Columns修改自动生成的视图列的Code和Name为更加合适的名称(系统对重复的命名会自动更名,但一般你不会满意的)。中并可以通过Preview选显卡查看最终生成的SQL语句。注意:Powerdesigner的视图编辑功能相对较弱,并不能直接选择特定的表的列组成你需要的视图,也不能增加一些特殊列,比如像添加一个商品差价列,但可以通过对SQL脚本编辑来实现:在SQLQuery选项卡中,你可以看到生成该视图的SQL语句,但注意此处和后面Preview不同,是可以编辑的。该SQL语句为:selectInventory.ItemIdInventory_ItemId,Inventory.Qty,Category.CategoryIdCategory_CategoryId,Category.NameCategory_Name,Category.DescnCategory_Descn,Item.ItemIdItem_ItemId,Item.SuppId,Item.ProductIdItem_ProductId,Item.ListPrice,Item.UnitCost,Item.Status,Item.ImageItem_Image,Item.NameItem_Name,Product.ProductIdProduct_ProductId,Product.CategoryIdProduct_CategoryId,Product.NameProduct_Name,Product.DescnProduct_Descn,Product.ImageProduct_ImagefromInventory,

Category,Item,Product现在我们去掉不期望在该视图中显示出来的数据列:库存编号Inventory.ItemId分类编号CategoryCategoryId和Product.CategoryId,供应商编号Item.SuppId,分类描述Category.Descn,产品编号Item.ProductId和Product.ProductId,产品描述Product.Descn,产品图片Product.Image。只保留我们需要的字段,并调整其上下显示顺序和显示别名。最后再增加一个数据列:差价:Item.ListPrice-Item.UnitCostPricedifference最后的SQL语句修改为:selectItem.ItemIdItemId,Item.NameItem_Name,Product.NameProduct_Name,Category.NameCategory_Name,Item.ListPrice,Item.UnitCost,Item.Status,Item.ImageImage,Inventory.Qty,Item.ListPrice-Item.UnitCostPriceDifferencefromInventory,Category,Item,Product这时再切换回Columns选显卡,会发现显示的列已经更改掉了:ilViewrropgrlie^-产品关款信息祝图ttteBjviuIafc)(reneralCulmins|Triggjers|3QLQuery|Notes|Rules|Ireriew雪l・担I十枣More>>NameI—茗布”产帛君新•…施君.新…期IWf"鬲一.W"More>>NameI—茗布”产帛君新•…施君.新…期IWf"鬲一.W"llemld11煎项迎号F'mcUc^NanieCctcgDrp_NamEListPriceUnitCosi Status_ImagePrcedfference;DW[cwicwiDW:2;DW,H.[2jcw\2\cw=2icwD|2L11-T=:^y=16:^p]tHni.lteri-lcj「j.j.羊;耳4w甫扁汀赢厂zdi'i^eHaE"i'a^F希而W无i2dl'i^GH9S"i'&CpSicgayNi2dii^G^9H"iG:^p1t9m:ListPrid20li^6^9B"iE^Ateni:UniCD苴I匡扫爰二EMA画煎让2011^gH90"i&4jp|ltern.Image201i^G^9日i&4E|i™0iitar^.Q蒂助/ x产品关联信息视图编号名称产品名称分类名称卖价进价状态图片差'介1三InventoryCategoryItemProduct y1.1.2先建立空白视图,再选择所需表和视图(1)选择Tools->CreateView,打开如下选择窗口:SeJ.ect.ioi(ISESt.塾■aTNameJCodeI3刀库存Iri'/enbjrp"口产品矣奕Categorii。回商品隹底Itcn'i*「产品Product□3供应甫Suppler口囹热点溶品Hotten|」、1"曰通;三;XViews:\Reierencas/Selectedobect(s):47G己| CancelIHelp(2)在列表中选择你所要添加的表和视图,单击OK,确认添加即可完成创建,这时在模型视图中出现视图图符。其它操作略。1.1.3为视图使用扩展依赖(ExtendedDependencies)扩展依赖是物理图表对象之间的连接,这些连接有助于让模型对象之间的关系更加清晰,而不会被PowerDesigner解释或检查,主要是用于文档化而建立的。选择Palette面板中Link/ExtentedDependency工具在模型图表中先单击目标视图,拖放鼠标至其有关联的表和视图上,即将视图和表之间建立了联系,如下图示:1L__每麟 vjrchji^O)电耻1 varcftan^O)ftW—1L__每麟 vjrchji^O)电耻1 varcftan^O)ftW—皱iir vmhA便叫怵漓 vairchiii£5^_.电诅分#号ini名样 WACCtlJ^O)麻述 ¥*由3"«,国印 纪1画3做)倍率ermtt1S供好Idtnt.客日jrAri±jrf1(Fl 5d>森都H卷弥巾心)decimal(lO,2)<*>vjrithjiC2)vjirthjifBO)SAvarehiiCBO)村关额号iTjJ使用扩展依赖仅仅是为了文档化模型,使对象关系更为清晰而已。注意:视图中SQL语句一定要编写正确,比如前面的SQL语句,目前来看似乎一切正常,powerdesigner没有报错,校验也没问题,但生成SQL数据库后,你查看此视图,就会发现显示的信息并非仅仅显示每条商品信息的详细记录,似乎重复了很多。这是因为上面那个SQL语句本质上是一个CrossJoin的连接查询,其结果就是产生了大量无用的数据,而实际上我们需要的是InnerJoin内连接查询:最后查询语句可以这样修改:SELECTdbo.Item.ItemId,dbo.Item.Name,dbo.Category.NameCategory_Name,dbo.Product.NamePruduct_name,dbo.Item.UnitCost,dbo.Item.ListPrice,dbo.Item.Status,dbo.Item.Image,dbo.Inventory.Qty,dbo.Item.ListPrice-dbo.Item.UnitCostPriceDifferenceFROMdbo.ItemINNERJOINdbo.InventoryONdbo.Item.ItemId=dbo.Inventory.ItemIdINNERJOINdbo.ProductONdbo.Item.ProductId=dbo.Product.ProductIdINNERJOINdbo.CategoryONdbo.Product.CategoryId=dbo.Category.Cate

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论