數(shù)據(jù)庫:第5章 數(shù)據(jù)庫設(shè)計(jì)_第1頁
數(shù)據(jù)庫:第5章 數(shù)據(jù)庫設(shè)計(jì)_第2頁
數(shù)據(jù)庫:第5章 數(shù)據(jù)庫設(shè)計(jì)_第3頁
數(shù)據(jù)庫:第5章 數(shù)據(jù)庫設(shè)計(jì)_第4頁
數(shù)據(jù)庫:第5章 數(shù)據(jù)庫設(shè)計(jì)_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第5章數(shù)據(jù)庫設(shè)計(jì)5.1數(shù)據(jù)庫設(shè)計(jì)概述5.2需求分析5.3概念設(shè)計(jì)5.4邏輯設(shè)計(jì)5.5物理設(shè)計(jì)5.6IDEF方法5.7數(shù)據(jù)庫實(shí)施5.8數(shù)據(jù)庫運(yùn)行與維護(hù)數(shù)據(jù)庫設(shè)計(jì)是數(shù)據(jù)庫生命周期中的最重要的階段,其好壞直接影響整個數(shù)據(jù)庫系統(tǒng)的成敗數(shù)據(jù)庫設(shè)計(jì)是指在一個特定應(yīng)用環(huán)境下,根據(jù)用戶的信息需求、處理需求和數(shù)據(jù)庫支撐環(huán)境(包括DBMS、OS和硬件),

構(gòu)造最合理的數(shù)據(jù)庫模式,創(chuàng)建數(shù)據(jù)庫及其相關(guān)應(yīng)用系統(tǒng)的過程5.1概述數(shù)據(jù)庫系統(tǒng)生命周期指數(shù)據(jù)庫應(yīng)用系統(tǒng)從開始規(guī)劃、分析、設(shè)計(jì)、實(shí)現(xiàn)、投入運(yùn)行后的維護(hù)到最后被新的系統(tǒng)所取代而停止使用的整個期間數(shù)據(jù)庫系統(tǒng)的生存期:(1)系統(tǒng)規(guī)劃:(2)數(shù)據(jù)庫設(shè)計(jì):需求分析,概念設(shè)計(jì),邏輯設(shè)計(jì),物理設(shè)計(jì)(3)系統(tǒng)實(shí)現(xiàn):應(yīng)用程序編碼、調(diào)試(4)運(yùn)行和維護(hù):數(shù)據(jù)庫設(shè)計(jì)主要有以下兩種方法:面向數(shù)據(jù)的設(shè)計(jì)方法(data-orientedapproach):以信息需求為主,兼顧處理需求;面向過程的設(shè)計(jì)方法(process-orientedapproach):以處理需求為主,兼顧信息需求;一般來說,數(shù)據(jù)相對比較穩(wěn)定的,而處理則相對容易變動,所以為了設(shè)計(jì)一個相對穩(wěn)定的數(shù)據(jù)庫,數(shù)據(jù)庫設(shè)計(jì)主要采用面向數(shù)據(jù)的設(shè)計(jì)方法數(shù)據(jù)庫設(shè)計(jì)方法數(shù)據(jù)庫設(shè)計(jì)的步驟數(shù)據(jù)庫設(shè)計(jì)分6個階段需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫實(shí)施數(shù)據(jù)庫運(yùn)行和維護(hù)

需求分析和概念設(shè)計(jì)獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng)邏輯設(shè)計(jì)和物理設(shè)計(jì)與選用的DBMS密切相關(guān)

信息需求需求分析處理需求概念設(shè)計(jì)需求說明書獨(dú)立于軟、硬件環(huán)境的數(shù)據(jù)模式邏輯設(shè)計(jì)物理設(shè)計(jì)外模式、邏輯模式及應(yīng)用程序DBMS特性內(nèi)模式硬件、OS特性數(shù)據(jù)庫設(shè)計(jì)基本過程數(shù)據(jù)庫設(shè)計(jì)的步驟數(shù)據(jù)庫設(shè)計(jì)過程中的各級模式數(shù)據(jù)庫的各級模式

需求分析階段主要負(fù)責(zé)收集用戶的信息需求及處理需求,并加以分析、整理、統(tǒng)一,最終形成用戶需求分析說明書5.2需求分析需求分析的任務(wù)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織、部門、企業(yè)等)充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))明確用戶的各種需求確定新系統(tǒng)的功能充分考慮今后可能的擴(kuò)充和改變編寫需求分析說明書需求分析的重點(diǎn)需求分析的重點(diǎn)是用戶的“數(shù)據(jù)”和“處理”,即獲得用戶對數(shù)據(jù)庫的“真實(shí)”要求,包括:信息要求處理要求安全性與完整性要求需求分析的難點(diǎn)確定用戶的真實(shí)需求,原因:用戶缺少計(jì)算機(jī)知識設(shè)計(jì)人員缺少用戶的專業(yè)知識解決方法設(shè)計(jì)人員必須不斷深入地與用戶進(jìn)行交流E01-EDIDataWarehouse(InterfacestoandfromtheDataWarehousearenotdisplayedonthisdiagram)G02-GeneralLedgerA05-APS01-SalesCorrectionsI01POReceivingI03ReturntoVendorI06WarehouseManagementMainframePC/NTappsUNIXapps3rdpartyinterfaceS06-CreditAppP15EESEmployeeChangeNoticeOTHERAPPS-PCAP-Collections/CreditTM-CreditCardDBACCTSRECAPPS-PC990CORBadDebtBeneficialFeesBeneficialReconcileJEAXFJEBFAJEBKAJEDVAJESOAJEVSAJEVSFNSFTeleCreditFeesINVENTORYCONTROLAPPS-PCCodeAlarmDebitReceivingsDevoSalesDisplayInventoryInHomeJunkoutsMerchandiseWithdrawalPromoCreditsRTVAccrualShrinkAPResearch-InvCntrlAPResearch-AddlRptsBooktoPerpetualInventoryCloseOutReportingComputerIntelligenceDataCountCorrectionsCrossRefforVCBDnldsDamageWriteOffDebitReceivingsDFIVendorDatabaseDisplayInventoryReconcileDisplayInventoryReportingINVENTORYCONTROLAPPS-PCDPI/CPIICBatchingInventoryAdj/CountCorrectInventoryControlReportsInventoryLevelsInventoryRollMerchandiseWithdrawalOpenReceivingsPICountResultsPITimeResultsfromInvPriceProtectionSalesFlashReportingShrinkReportingSKUGrossMarginSKUShrinkLevelDetailUSMVCBDownloadsJournalEntryToolKitScorecard-HRL02-ResourceScheduling(Campbell)P09-P17CyborgM02-MillenniumM03-Millennium3.0Banks-ACHandPostoPayCobraB01-StockStatusS03-PollingP14On-lineNewHireEntryCTSPlanAdministrators(401K,PCS,Life,Unicare,SolomonSmithBarney)D01PostLoadBillingI04HomeDeliveriesI02-TransfersArthurPlanningI07PurchaseOrderI12EntertainmentSoftwareI05InventoryInfoE13E3InterfaceS04-SalesPostingV01-PriceManagementSystemI10CyclePhysicalInventoryI55SKUInformationK02CustomerRepairTrackingI35EarlyWarningSystemB02MerchandiseAnalysisI13-AutoReplenishmentU18-CTOInterceptI09CycleCountsE02-EmployeePurchaseTexlon3.5ACHStockOptionsI17CustomerPerceivedIn-StockU16-TexlonSiteSeerC02-CapitalProjectsF06-FixedAssetsUSBankReconFileStarRepairEDICoordinatorMesaDataNEWSoundscanNPDGroupAIGWarrantyGuardResumixOptikaStoreBudgetReportingP16-TallySheetCashReceipts/CreditS05-HouseChargesAdExpenseL01-PromoAnalysisV02-PriceMarketingSupportBMP-BusperformanceMngtStoreScorecardI11PriceTestingValleyMediaP09Bonus/HRI15HandScanAppsRoadshowPOSS08-VertexSalesTaxA04-CustRefundChksEquifaxICMSCreditCellularRolloverS09-DigitalSatelliteSystemNPD,SoundScanSterlingVANMailbox(Value)I18SKURepX92-X96HosttoAS400CommunicationS02-LayawaysWashington,RGIS,NtlBusSystemsV04-SignSystemI14CountCorrectionsNARMP01-EmployeeMasterfileI06-CustomerOrderFrickCoUAR-UniversalAccountReconciliationDepositoryBanksS07-CellPhonesS11-ISPTrackingAASFringePOCashOver/ShortL60MDFCoopSKUSelectionToolSKUPerformanceSupplierCompliance1I35-CEIASISMiscAccounting/FinanceApps-PC/NTCOBA(CorpofficeBudgetAssistant)PCBS(ProfitCenterBudgetSystem)MerchandisingBudgetAIMSMerchMngrApprovalBatchForcastingAdMeasurementAIMSAdminAIMSReportingAdLauncherV03-MktReactionsSpecSourceCTO2.BRebateTransferSignSystemCopyWriter'sWorkspaceELTPowerSuiteStoreMonitorAISCalendarStores&MrktsDueDatesSmartPlusInsertionsOrdersBudgetAnalysisToolPrintCostingInvoiceAppAISReportsBroadcastFilterSmartPlusLauncherGeneralMaintenancePrinterPOPrinterMaintenanceVendorMaintenanceVendorSetupConnect3Connect3ReportsConnect3PDFTransfeSpecSourceSKUTrackingS20-SalesPollingProdigyPSPIn-HomeRepairWarrantyBillingSystemProcessServers(Imaging)PreparedbyMichelleMillsAnexampleofarealarchitectureinanindustry背景:軟件越來越復(fù)雜軟件需求的不確定性AsManagementrequestedit.AstheProjectLeaderdefinedit.AsSystemsdesignedit.AsProgrammingdevelopedit.AsOperationsinstalledit.Whattheuserwanted.(Pre-1970cartoon;originunknown)需求分析的步驟1.需求信息的收集(了解用戶需求)(1)信息需求,用戶要從數(shù)據(jù)庫獲得的信息內(nèi)容(2)處理需求,完成什么處理功能及處理方式(3)安全性和完整性要求2.需求信息的分析整理對收集到的數(shù)據(jù)進(jìn)行抽象,即對實(shí)際事物或事件的人為處理,抽取共同的本質(zhì)特性,并用各種概念精確地加以描述要向把收集到的信息(如文件、圖表、票據(jù)等)轉(zhuǎn)換為下一階段工作可用的形式信息,必須對需求信息作分析整理的工作3.編寫需求分析說明需求分析的結(jié)果確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)范圍圖分析用戶活動,產(chǎn)生業(yè)務(wù)流程圖分析用戶活動涉及的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流圖分析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是數(shù)據(jù)庫的概念設(shè)計(jì)概念模型是對現(xiàn)實(shí)世界的一種抽象,即對實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取人們關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述5.3概念設(shè)計(jì)采用ER模型的概念設(shè)計(jì)ER模型的基本元素實(shí)體聯(lián)系屬性例子實(shí)體聯(lián)系屬性ER模型圖例老師學(xué)生教mn學(xué)號姓名專業(yè)班級職稱性別姓名職號由于現(xiàn)實(shí)世界中客觀存在的一些事物和概念無法通過基本ER模型進(jìn)行準(zhǔn)確描述,因此對基本E-R模型進(jìn)行了必要的擴(kuò)展,即擴(kuò)充的ER模型(ExtendedER,EER),包括:弱實(shí)體、普遍化(Generalization)/特殊化(Specialization)、范疇(Category)、聚集(Aggregation)等概念。擴(kuò)充的ER模型擴(kuò)充的ER模型:弱實(shí)體什么是弱實(shí)體弱實(shí)體的表示方法問題:在人事管理系統(tǒng)中,親屬的存在是以職工的存在為前提,即親屬對于職工具有依賴聯(lián)系,因此,親屬是弱實(shí)體

職工親屬具有1NER圖職工(職工號,職工姓名,性別,年齡)親屬(職工號,稱呼,姓名,工作單位)

關(guān)系模式表示“是……的一種”的關(guān)系抽象本科生研究生學(xué)生碩士博士ISAISA姓名學(xué)號DissertationPapers軍訓(xùn) 如果概括是不相交并且是全部的,即一個高層實(shí)體最多并且只能屬于一個低層實(shí)體集,則可以不為高層實(shí)體集建立關(guān)系碼。擴(kuò)充的ER模型:普遍化/特殊化擴(kuò)充的ER模型:子類與超類子類和超類的性質(zhì)子類與超類之間具有繼承性,但子類本身還能包含比超類更多的屬性。子類和超類有相同的標(biāo)識符

人員教師本科生學(xué)生研究生學(xué)校人事系統(tǒng)中實(shí)體之間的聯(lián)系

人員(身份證號,姓名,年齡,性別) 教師(身份證號,教師編號,職稱)學(xué)生(身份證號,學(xué)號,系別,專業(yè))本科生(身份證號,入學(xué)年份)研究生(身份證號,研究方向,導(dǎo)師姓名)對應(yīng)的關(guān)系模式學(xué)生d本科生??粕疤厥饣盓-R圖示例研究生姓名學(xué)號性別班級學(xué)制獎學(xué)金導(dǎo)師學(xué)位研究方向擴(kuò)充的ER模型:普遍化/特殊化表示“是……的一部分”的關(guān)系抽象職工項(xiàng)目參加姓名工種名稱類型機(jī)器名型號工時使用機(jī)器使用(職工姓名,項(xiàng)目名稱,機(jī)器名)參加(職工姓名,項(xiàng)目名稱)擴(kuò)充的ER模型:聚集單位個人U賬戶主設(shè)立銀行NM“范疇”E-R圖示例日期賬號名稱法人代表地址姓名身份證號碼聯(lián)系方式擴(kuò)充的ER模型:范疇實(shí)體和屬性的設(shè)計(jì)基本屬性和復(fù)合屬性(可否再分)單值屬性和多值屬性(對一個實(shí)體對象是否只能取一個值)多值屬性的處理將原來的多值屬性用幾個新的單值屬性來表示。將原來的多值屬性用一個新的實(shí)體類型表示導(dǎo)出屬性空值圖7.4地址屬性的層次結(jié)構(gòu)郵政編碼?。ㄊ校┟刂穮^(qū)名街道家庭地址門牌號碼圖7.5多值屬性的表示零件編碼零件零件名供應(yīng)商規(guī)格進(jìn)貨價格銷售價格價格圖7.8導(dǎo)出屬性的表示工號職工姓名基本工資獎金房租實(shí)發(fā)工資圖7.6多值屬性的變換(1)零件編碼零件零件名供應(yīng)商規(guī)格進(jìn)貨價格經(jīng)銷價格代銷價格批發(fā)價格零售價格圖7.7多值屬性的變換(2)零件編碼零件零件名供應(yīng)商規(guī)格進(jìn)貨價格銷售性質(zhì)價格售貨價格存在銷售價格1N零件編碼聯(lián)系的設(shè)計(jì)聯(lián)系集

聯(lián)系集是n(n≥2)個實(shí)體集上的數(shù)學(xué)關(guān)系,這些實(shí)體集不必互異。如果E1,E2,…,En為n個實(shí)體集,那么聯(lián)系集R是{(e1,e2,…,en)|e1∈E1,e2∈E2,…,en∈En}的一個子集,而(e1,e2,…,en)是一個聯(lián)系。聯(lián)系的元數(shù)一個聯(lián)系涉及到的實(shí)體集個數(shù)聯(lián)系的連通詞聯(lián)系涉及到的實(shí)體集之間實(shí)體對應(yīng)的方式實(shí)體的基數(shù)有兩個實(shí)體集E1和E2,E1中每個實(shí)體與E2中有聯(lián)系實(shí)體的數(shù)目的最小值min和最大值max,稱為E1的基數(shù),用(min,max)形式表示問題:運(yùn)動員根據(jù)其得分來排定名次。在名次排列中,排在他前面只有一個人排在他后面也只有一個人

運(yùn)動員編號姓名性別名次順序11圖7.9一元聯(lián)系中的1:1聯(lián)系

職工之間的上下級聯(lián)系

職工工號姓名年齡性別領(lǐng)導(dǎo)1N圖7.10一元聯(lián)系中的1:N聯(lián)系

工廠的零件之間存在著組合關(guān)系,一種零件由許多種子零件組成,而一種零件也可以是其他零件的子零件

零件零件號零件名規(guī)格數(shù)量組成MN圖7.11一元聯(lián)系中的M:N聯(lián)系

某商業(yè)集團(tuán)中,商店、倉庫、商品之間的進(jìn)貨聯(lián)系

圖7.12三元聯(lián)系中的M:N:P聯(lián)系

倉庫商品商店倉庫號倉庫名地址數(shù)量商店號商品名商品號商店名日期進(jìn)貨MNP學(xué)校里規(guī)定每學(xué)期學(xué)生至少選修1門課程,最多選修6門課程;每門課程至多有50人選修,最少可以沒人選修

圖7.13聯(lián)系的連通詞和實(shí)體的基數(shù)學(xué)生課程選課M(1,6)N(0,50)ER模型的操作

包括實(shí)體類型、聯(lián)系類型和屬性的分裂、合并、增刪等等

教師號姓名出生日期職務(wù)工資獎金教師(a)教師號姓名出生日期教師不變信息職務(wù)工資獎金教師號教師變動信息(b)圖7.15實(shí)體類型的垂直分裂教師課程主講輔導(dǎo)1MNN圖7.16聯(lián)系類型的分裂教師課程講授MN(a)(b)圖7.17不合法的合并B(a)ACA-CB-CACA-B-C(b)B(1)自頂向下:首先建立較高抽象層次的模式(視圖),然后再逐步細(xì)化,求精,直至得到更為具體的模式(視圖)承擔(dān)教師1工作任務(wù)N(a)教學(xué)教師1課程N(yùn)(b)負(fù)責(zé)科研項(xiàng)目N1自頂向下設(shè)計(jì)過程示例概念設(shè)計(jì)的策略(2)自底向上:首先從具體的基本對象開始,建立一個包含有基本抽象的模式,然后再在此基礎(chǔ)上進(jìn)行組合、修改、抽象設(shè)立銀行M單位賬戶N設(shè)立銀行M個人賬戶N(a)單位個人U賬戶主設(shè)立銀行NM(b)自底向上設(shè)計(jì)過程示例概念設(shè)計(jì)的策略(3)由內(nèi)向外:該策略是自底向上策略的一個特例,首先從最基本的概念出發(fā),建立一個僅包含那些具有明顯特征的實(shí)體類型的初步模型,然后再逐步引入其它相關(guān)對象,因此整個建模過程是一個由內(nèi)向外的擴(kuò)張過程概念設(shè)計(jì)的策略(4)混合策略:該策略是自頂向下方式和自底向上方式的一種有效結(jié)合,首先按照自頂向下思想建立系統(tǒng)的全局結(jié)構(gòu)框架,然后對于框架內(nèi)的每一部分需求再按照自底向上方式進(jìn)行詳細(xì)設(shè)計(jì)概念設(shè)計(jì)的策略根據(jù)對用戶需求處理方式的不同,可以有集中式模式設(shè)計(jì)法和視圖集成法兩種概念結(jié)構(gòu)設(shè)計(jì)方式概念設(shè)計(jì)的方法集中式模式設(shè)計(jì)法首先對需求分析階段得到的應(yīng)用需求進(jìn)行合并,形成一個統(tǒng)一的整體需求說明系統(tǒng)的概念結(jié)構(gòu)設(shè)計(jì)將以合并后的總體需求為藍(lán)本,設(shè)計(jì)出全局的概念模式,然后再按照不同的特定應(yīng)用和用戶設(shè)計(jì)各自的外模式集中式設(shè)計(jì)法較適合于小規(guī)模的應(yīng)用集中式模式設(shè)計(jì)法視圖集成法主要包括:局部視圖設(shè)計(jì)視圖集成兩個設(shè)計(jì)步驟

視圖集成法局部視圖設(shè)計(jì)需求分析結(jié)果確定局部結(jié)構(gòu)范圍實(shí)體定義聯(lián)系定義屬性分配還有局部結(jié)構(gòu)待分析有無進(jìn)入全局ER模式設(shè)計(jì)圖

局部ER模式設(shè)計(jì)范圍的劃分要自然,易于管理;范圍的大小要適度。太小了,會造成局部結(jié)構(gòu)過多,設(shè)計(jì)過程繁瑣,綜合困難;太大了,則容易造成內(nèi)部結(jié)構(gòu)復(fù)雜,不便分析

范圍之間的界面要清晰,相互影響要小采用人們習(xí)慣的劃分;避免冗余,在一個局部結(jié)構(gòu)中,對一個對象只取一種抽象形式,不要重復(fù);依據(jù)用戶的信息處理需求

確定屬性的原則:屬性應(yīng)該是不可再分解的語義單位;實(shí)體與屬性之間的關(guān)系只能是1:N的;不同實(shí)體類型的屬性之間應(yīng)無直接關(guān)聯(lián)關(guān)系。

屬性分配的原則:當(dāng)多個實(shí)體類型用到同一屬性時,一般把屬性分配給那些使用頻率最高的實(shí)體類型,或分配給實(shí)體值少的實(shí)體類型。有些屬性不宜歸屬于任一實(shí)體類型,只說明實(shí)體之間聯(lián)系的特性

局部視圖設(shè)計(jì)現(xiàn)有的教學(xué)管理系統(tǒng)初步分析系統(tǒng)的對象根據(jù)服務(wù)種類分析教師子模塊……局部ER圖局部視圖設(shè)計(jì)現(xiàn)有的教學(xué)管理系統(tǒng)初步分析系統(tǒng)的對象根據(jù)服務(wù)種類分析學(xué)生子模塊……圖7.21學(xué)籍管理局部應(yīng)用的分E-R圖導(dǎo)師班級學(xué)生組成管理班主任檔案材料宿舍住宿歸檔指導(dǎo)系有參加學(xué)會1N111NNN11NMN1具有社會關(guān)系1N局部ER圖局部視圖設(shè)計(jì)現(xiàn)有的教學(xué)管理系統(tǒng)初步分析系統(tǒng)的對象根據(jù)服務(wù)種類分析課程子模塊……局部ER圖圖7.22課程管理局部應(yīng)用分E-R圖1教室M1教科書教師擔(dān)任課程系開設(shè)N1學(xué)生選修NMN上課PN各局部應(yīng)用的E-R圖設(shè)計(jì)完成后,需要將其合并形成一個全局的E-R圖模式,以此作為邏輯設(shè)計(jì)階段的設(shè)計(jì)依據(jù),這是視圖集成階段的主要工作全局E-R圖不是各個局部E-R圖的簡單拼湊

視圖集成視圖集成無圖視圖集成局部ER模式確定公共實(shí)體類型合并兩個局部ER模式檢查并消除沖突還有未合并的局部模式有還有沖突嗎有屬性沖突:如,重量單位有的用公斤,有的用克。

結(jié)構(gòu)沖突:同一對象在不同應(yīng)用中的不同抽象;同一實(shí)體在不同局部ER圖中屬性的個數(shù)或次序不同;實(shí)體之間的聯(lián)系在不同的局部ER圖中呈現(xiàn)不同的類型

命名沖突:屬性名、實(shí)體名、聯(lián)系名之間存在同名異義或異名同義沖突消除冗余,完成全局E-R圖冗余主要包括數(shù)據(jù)冗余和聯(lián)系冗余兩種情況,冗余的數(shù)據(jù)是指可以由其它基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù),冗余的聯(lián)系是指可以由其它聯(lián)系導(dǎo)出的聯(lián)系數(shù)據(jù)和聯(lián)系的冗余將會給數(shù)據(jù)庫完整性的維護(hù)帶來困難,容易引起數(shù)據(jù)的不一致,消除冗余的工作可以通過分析數(shù)據(jù)字典和數(shù)據(jù)流圖中的數(shù)據(jù)說明及數(shù)據(jù)間的關(guān)系完成視圖集成例如,對于教學(xué)管理E-R圖和學(xué)生管理E-R圖教師實(shí)體和班主任實(shí)體屬于同義異名,可將二者統(tǒng)一為教師實(shí)體,并將兩個屬性集的并作為新的屬性集合,但是兩實(shí)體的屬性集存在沖突,班主任的教師編號屬性和教師的工作證號屬性其實(shí)表達(dá)了相同的概念,教師的年齡屬性可以根據(jù)班主任實(shí)體的出生日期屬性計(jì)算得出,而且年齡會隨時間變化,需要做出相應(yīng)的修改,可將年齡屬性消去,得到教師實(shí)體的屬性集為{工作證號,姓名,性別,出生日期,職稱,是否班主任}視圖集成:例對于教學(xué)管理E-R圖和學(xué)生管理E-R圖在教學(xué)管理E-R圖中班級是作為學(xué)生實(shí)體的屬性出現(xiàn)的,而在學(xué)生管理E-R圖中班級作為實(shí)體出現(xiàn),二者存在矛盾,將學(xué)生實(shí)體的班級屬性去除,得到新的學(xué)生實(shí)體的屬性集為:{學(xué)號,姓名,性別,出生日期,Email}視圖集成:例學(xué)生選修全局E-R圖教室課程上課講授教師課程資料開設(shè)布置提供作業(yè)N11N1N1NM時間宿舍住宿個人檔案擁有社團(tuán)參加組成班級管理成績提交成績系11NMN111N1N1NMN視圖集成:例(1)二元梯形集成(2)n元集成(3)二元平衡集成(a)二元梯形集成V4V3V1V2V1V2V3V4(b)n元集成V1V2V3V4(c)二元平衡集成視圖集成策略E-R模型的設(shè)計(jì)原則E-R模型要在需求分析的基礎(chǔ)上進(jìn)行設(shè)計(jì)1.根據(jù)需求分析確定實(shí)體、屬性和實(shí)體間的聯(lián)系2.設(shè)計(jì)局部E-R模型3.對局部E-R模型進(jìn)行綜合,設(shè)計(jì)出總體E-R模型4.消除冗余,優(yōu)化總體E-R模型E-R模型的設(shè)計(jì)原則要旨:先化整為零,再化零為整

化整為零:進(jìn)行子系統(tǒng)劃分,即把整個應(yīng)用系統(tǒng)分為若干個相對獨(dú)立的應(yīng)用,這樣就可以對每一個子系統(tǒng)分別進(jìn)行設(shè)計(jì),得出局部E-R模型化零為整:把局部E-R模型進(jìn)行整合,設(shè)計(jì)出總體E-R模型E-R模型的設(shè)計(jì)步驟E-R模型的設(shè)計(jì)的三個階段:1.設(shè)計(jì)局部E-R模型關(guān)鍵是確定子系統(tǒng)中有哪些實(shí)體,實(shí)體又包含哪些屬性,它們之間的聯(lián)系如何2.設(shè)計(jì)總體E-R模型對局部E-R模型進(jìn)行綜合:對相同實(shí)體進(jìn)行合并;為屬于不同的局部E-R模型的實(shí)體間建立聯(lián)系3.優(yōu)化總體E-R模型消除由于合并帶來的冗余和沖突E-R模型設(shè)計(jì)舉例某學(xué)校的管理信息系統(tǒng):學(xué)校有4個部門要求實(shí)現(xiàn)計(jì)算機(jī)管理:人事處:教職工管理學(xué)生處:學(xué)生學(xué)籍管理教務(wù)處:教學(xué)管理后勤處:住宅、宿舍管理E-R模型設(shè)計(jì)舉例假定在設(shè)計(jì)之前,已進(jìn)行了調(diào)研和需求分析。主要信息如下:學(xué)校包括多個管理部門和多個系;每個部門或系有多名教職工,一名教職工只能屬于一個部門或一個系;每個系有多個班級,一個班級只能屬于一個系;每個班級有若干名學(xué)生,一名學(xué)生只能屬于一個班級;學(xué)校開設(shè)多門課程,一門課程可被多名學(xué)生選修,一名學(xué)生也可選修多門課程;一門課程可由多名教師講授,一名教師也可講授多門課程;學(xué)校有多間教室,一間教室同一時間只能安排一門課程,而一門課程在同一時間可安排在多個教室(由多名教師講授,見上);學(xué)校有多座教工住宅樓,每個住宅樓有多套住房,每套住房只能分配給一名教工,每名教職工只能分配一套住房;學(xué)校有多座學(xué)生宿舍樓,每個宿舍樓有多個房間,每個房間可安排多名學(xué)生住宿,每個學(xué)生只能安排一個房間E-R模型設(shè)計(jì)舉例1.設(shè)計(jì)局部E-R模型1)確定局部應(yīng)用范圍通常情況下可按系統(tǒng)的使用部門劃分:本例中劃分為四個模塊。人事管理——人事處學(xué)生管理——學(xué)生處教學(xué)管理——教務(wù)處住房管理——后勤處通常,校長需要了解整個學(xué)校的運(yùn)行情況,所以還應(yīng)有一個校長查詢模塊,提供決策指導(dǎo)信息。E-R模型設(shè)計(jì)舉例(10/20)2)確定實(shí)體集(以“人事管理”為例)通過調(diào)研和需求分析,人事部門需要管理教職工、部門、職稱和職務(wù),所以實(shí)體集有:教職工、部門、職稱和職務(wù)。

3)確定聯(lián)系集決定各實(shí)體集間的聯(lián)系:部門-教職工:1:N部門-職稱:沒有聯(lián)系部門-職務(wù):沒有聯(lián)系教職工-職稱:N:1教職工-職務(wù):N:1職稱-職務(wù):沒有聯(lián)系根據(jù)以上兩個步驟,畫出初步E-R圖如下:部門教職工職務(wù)擁有擔(dān)任n11n職稱具有1nE-R模型設(shè)計(jì)舉例4)確定實(shí)體集的屬性.通過調(diào)研和需求分析,各實(shí)體的屬性如下: 教職工:教職工號,姓名,性別,出生日期,學(xué)歷部門(包括管理部門和教學(xué)院系):部門號,類型,名稱,辦公電話職務(wù):代號,名稱職稱:代號,名稱5)確定聯(lián)系集的屬性部門-教職工:無教職工-職稱:聘任日期教職工-職務(wù):任職日期E-R模型設(shè)計(jì)舉例6)畫出局部E-R模型部門/系教職工職務(wù)具有擔(dān)任n11n職稱聘任1n姓名出生日期學(xué)歷性別任職日期聘任日期代號名稱代號名稱類型辦公電話部門號名稱教職工號E-R模型設(shè)計(jì)舉例其他三個子模塊的局部E-R模型的設(shè)計(jì)基本類似。學(xué)生管理的局部E-R模型班級學(xué)生具有n1學(xué)號姓名出生日期入學(xué)日期性別班級名班級號家庭住址系班長E-R模型設(shè)計(jì)舉例教學(xué)管理的局部E-R模型教師課程教室講授使用nm1n學(xué)生選修nm課程號名稱學(xué)時使用時間成績學(xué)號出生日期教室號學(xué)分姓名性別班級教職工號姓名性別系座位數(shù)類型E-R模型設(shè)計(jì)舉例住房管理的局部E-R模型教職工住宅宿舍分配住宿11學(xué)生房號地點(diǎn)面積學(xué)號宿舍號姓名性別班級教職工號姓名性別職務(wù)人數(shù)職稱部門1n租金類型E-R模型設(shè)計(jì)舉例2.設(shè)計(jì)總體E-R模型把所有局部E-R模型進(jìn)行整合,形成一個統(tǒng)一的E-R模型。整合時,在兼顧各模塊的需求前提下,主要應(yīng)解決沖突問題。命名沖突同義異名:同一對象在不同的局部E-R圖中具有不同的名字需要把名字進(jìn)行統(tǒng)一。例如,教職工和教師統(tǒng)一為教職工。同名異義:不同的對象在不同的局部E-R圖中具有相同的名字需要重新命名加以區(qū)別。屬性沖突屬性值類型、取值范圍、取值單位(如公斤-磅)需要進(jìn)行統(tǒng)一,以同時滿足各部門的需求。結(jié)構(gòu)沖突同一對象在不同的局部E-R圖中抽象級別不同需要進(jìn)行調(diào)整。如系在教學(xué)管理中為屬性,而在人事管理中為實(shí)體同一實(shí)體在不同的局部E-R圖中包含的屬性個數(shù)不同 需要進(jìn)行統(tǒng)一。如教學(xué)管理的教師實(shí)體與人事管理的教職工實(shí)體。E-R模型設(shè)計(jì)舉例在進(jìn)行整合時,有時可能需要增加新的聯(lián)系。例如,人事管理與學(xué)生管理整合時,部門(系)實(shí)體與班級實(shí)體之間可以增加一個聯(lián)系:系-班級有時還可能要刪除冗余的聯(lián)系,這主要是指從其他聯(lián)系可以推導(dǎo)出來的聯(lián)系。為便于檢查聯(lián)系,可把所有實(shí)體的屬性臨時刪除整合時,一般采用兩兩整合的方法,直到所有局部E-R圖合并成一個完整的總體E-R圖注意選取一個公共的關(guān)鍵實(shí)體,用它為基準(zhǔn)進(jìn)行兩兩整合。本例中可選取學(xué)生實(shí)體或課程實(shí)體E-R模型設(shè)計(jì)舉例3.消除冗余,優(yōu)化總體E-R模型優(yōu)化的目標(biāo)是:在滿足需求的前提下實(shí)體的屬性盡可能少;實(shí)體聯(lián)系盡可能少;實(shí)體的屬性無冗余;實(shí)體間的聯(lián)系無冗余。在本例中:職稱和職務(wù)實(shí)體只有一個有效屬性“名稱”,所以可以把它們作為教職工的屬性,同時把相關(guān)的聯(lián)系的屬性(聘任日期、任職日期)也作為教職工的屬性。最終完成的總體E-R圖E-R模型的設(shè)計(jì)步驟在優(yōu)化時注意,消除冗余不是絕對的。為了提高效率,有時必要的冗余也是允許的冗余數(shù)據(jù)的完整性(一致性)可通過兩種方法解決:1.對一個數(shù)據(jù)的增/刪/改時,對另一個數(shù)據(jù)也進(jìn)行同步操作,兩個操作放在一個事務(wù)中;2.使用觸發(fā)器。對一個數(shù)據(jù)的增/刪/改,用觸發(fā)器對另一個數(shù)據(jù)進(jìn)行同步操作邏輯設(shè)計(jì)的任務(wù)是在概念設(shè)計(jì)的基礎(chǔ)上給出與DBMS相關(guān)的數(shù)據(jù)庫邏輯模式例如,將E-R圖轉(zhuǎn)換為某種具體的(如,關(guān)系)數(shù)據(jù)模型5.4邏輯設(shè)計(jì)基于ER模型的邏輯設(shè)計(jì)步驟圖

關(guān)系數(shù)據(jù)庫的邏輯設(shè)計(jì)關(guān)系模式規(guī)范化模式評價是否需要修正從ER模式導(dǎo)出初始數(shù)據(jù)庫模式處理需求ER模式DBMS特征用DBMS語法描述模式修正進(jìn)入物理設(shè)計(jì)階段是否E-R模型向關(guān)系模型轉(zhuǎn)化E-R模型獨(dú)立于DBMS——可用于任何一種數(shù)據(jù)庫把E-R模型轉(zhuǎn)換為某個具體的DBMS所能接受的關(guān)系數(shù)據(jù)模型,稱為數(shù)據(jù)庫的邏輯設(shè)計(jì),或稱為建立數(shù)據(jù)庫邏輯模式E-R模型轉(zhuǎn)換為關(guān)系模型主要解決:如何用關(guān)系來表達(dá)實(shí)體和實(shí)體間的聯(lián)系E-R模型向關(guān)系模型的轉(zhuǎn)換可以參照以下原則進(jìn)行:(1)實(shí)體轉(zhuǎn)換為關(guān)系模式,關(guān)系模式的屬性集由實(shí)體原有的屬性集構(gòu)成,實(shí)體的鍵是關(guān)系模式的鍵(2)如果屬性是非原子屬性,可以按照縱向展開或橫向展開的方式將其轉(zhuǎn)化為原子屬性。對于集合類型的非原子屬性,需要縱向展開,而元組類型的屬性則需要橫向展開(3)實(shí)體間的聯(lián)系可以轉(zhuǎn)換為關(guān)系模式,也可以與參與聯(lián)系的實(shí)體所對應(yīng)的關(guān)系模式合并,對于常見的二元聯(lián)系和三元聯(lián)系,有以下的具體轉(zhuǎn)換方式:ER模型向關(guān)系模型的轉(zhuǎn)換1:1聯(lián)系當(dāng)E1和E2都是部分參與時:R1(K1,A1),R2(K2,A2),R3(K1,K2,AR),其中K1,K2都可成為R3的鍵當(dāng)E1是全參與時:R1(K1,A1,K2,AR),R2(K2,A2),其中K2是R1的外鍵E1R1:1聯(lián)系K1A1ARA2K211E2ER模型向關(guān)系模型的轉(zhuǎn)換

1:N聯(lián)系當(dāng)E2是部分參與時:R1(K1,A1),R2(K2,A2),R3(K1,K2,AR),其中K2是R3的外鍵

當(dāng)E2是全參與時:R1(K1,A1),R2(K2,A2,K1,AR),其中K1是R2的外鍵E1R1:N聯(lián)系K1A1ARA2K21NE1ER模型向關(guān)系模型轉(zhuǎn)換

M:N聯(lián)系R1(K1,A1),R2(K2,A2),R3(K1,K2,AR),其中K1,K2聯(lián)合構(gòu)成R3的鍵,且K1,K2又同時都是外鍵E1RM:N聯(lián)系K1A1ARA2K2MNE1ER模型向關(guān)系模型轉(zhuǎn)換三元聯(lián)系可以按照M:N二元聯(lián)系的情況處理,因此包括實(shí)體轉(zhuǎn)換的關(guān)系模式在內(nèi)一共會得到四個關(guān)系模式ER模型向關(guān)系模型轉(zhuǎn)換(4)如果存在鍵完全相同的若干個關(guān)系模式,則可以考慮將其合并為一個新的關(guān)系模式(5)對于同一類型實(shí)體的自聯(lián)系,可以參照(3)中給出的不同實(shí)體間1:1、1:N、M:N聯(lián)系的情況進(jìn)行轉(zhuǎn)換,但應(yīng)給予不同的命名加以區(qū)分ER模型向關(guān)系模型轉(zhuǎn)換ER模型到關(guān)系模型轉(zhuǎn)換:實(shí)例運(yùn)動員編號姓名性別名次順序11職工工號姓名年齡性別領(lǐng)導(dǎo)1N運(yùn)動員(編號,姓名,性別,名次,上一名次編號,下一名次編號)

職工(工號,姓名,年齡,性別,經(jīng)理工號)

ER模型到關(guān)系模型轉(zhuǎn)換:實(shí)例零件零件號零件名規(guī)格數(shù)量組成MN倉庫商品商店倉庫號倉庫名地址數(shù)量商店號商品名商品號商店名日期進(jìn)貨MNP零件(零件號,零件名,規(guī)格)組成(零件號,子零件號,數(shù)量)

倉庫(倉庫號,倉庫名,地址)商店(商店號,商店名)商品(商品號,商品名)進(jìn)貨(商店號,商品名,倉庫號,日期,數(shù)量)

例:庫存銷售信息管理系統(tǒng)的ER模型及轉(zhuǎn)換P車間倉位產(chǎn)品客戶銷售員存儲出庫訂單入庫MNMPMNPMNN庫存系統(tǒng)ER圖車間(車間號,車間名,主任名)產(chǎn)品(產(chǎn)品號,產(chǎn)品名,單價)倉位(倉位號,地址,主任名)客戶(客戶號,客戶名,聯(lián)系人,電話,地址,稅號,賬號)銷售員(銷售員號,姓名,性別,學(xué)歷,業(yè)績)實(shí)體入庫(入庫單號,入庫量,入庫日期,經(jīng)手人,車間號,倉位號,產(chǎn)品名)出庫(出庫單號,出庫量,出庫日期,經(jīng)手人,客戶號,產(chǎn)品名,倉位號)訂單(訂單號,數(shù)量,折扣,總價,訂單日期,產(chǎn)品號,客戶號,銷售員號)

存儲(倉位號,產(chǎn)品號,核對日期,核對員,存儲量)聯(lián)系學(xué)生選修全局E-R圖教室課程上課講授教師課程資料開設(shè)布置提供作業(yè)N11N1N1NM時間宿舍住宿個人檔案擁有社團(tuán)參加組成班級管理成績提交成績系11NMN111N1N1NMN視圖集成:例學(xué)生(學(xué)號,姓名,性別,出生日期,Email)個人檔案(檔案編號,姓名,政治面貌,個人經(jīng)歷,獎懲情況,社會關(guān)系)宿舍(宿舍號,位置,床位數(shù),描述)班級(名稱,學(xué)生人數(shù),班長)社團(tuán)(社團(tuán)編號,名稱,負(fù)責(zé)人,簡介)課程(課程編號,課程名稱,學(xué)分,學(xué)期,教材)課程資料(資料編號,文件名稱,文件位置,資料類型,資料說明)作業(yè)(作業(yè)編號,文件名稱,文件位置,作業(yè)說明,上交時間)教室(教室編號,位置,座位數(shù))教師(工作證號,姓名,性別,出生日期,職稱,是否班主任)系(系編號,系名)ER模型到關(guān)系模型的轉(zhuǎn)換:實(shí)例不將1:1和1:N聯(lián)系轉(zhuǎn)化為關(guān)系模式,而是合并到參與聯(lián)系實(shí)體所對應(yīng)的關(guān)系模式中,得到如下新的關(guān)系模式:

學(xué)生(學(xué)號,姓名,班級,性別,出生日期,Email,檔案編號,宿舍編號)

個人檔案(檔案編號,姓名,政治面貌,個人經(jīng)歷,獎懲情況,社會關(guān)系)

宿舍(宿舍號,位置,床位數(shù),描述)班級(名稱,學(xué)生人數(shù),班長,班主任)

社團(tuán)(社團(tuán)編號,名稱,負(fù)責(zé)人,簡介)課程(課程編號,課程名稱,任課教師,系編號,學(xué)分,學(xué)期,教材,教室,時間)課程資料(資料編號,課程編號,文件名稱,文件位置,資料類型,資料說明)作業(yè)(作業(yè)編號,課程編號,文件名稱,文件位置,作業(yè)說明,上交時間)

教室(教室編號,位置,座位數(shù))

教師(工作證號,姓名,性別,出生日期,職稱,是否班主任)

系(系編號,系名)ER模型到關(guān)系模型的轉(zhuǎn)換:實(shí)例對于關(guān)系模式進(jìn)行的優(yōu)化與調(diào)整主要集中在數(shù)據(jù)結(jié)構(gòu)與性能兩個方面:結(jié)構(gòu)方面的調(diào)整主要是指通過關(guān)系規(guī)范化理論對關(guān)系模式進(jìn)行優(yōu)化,以減少數(shù)據(jù)冗余和更新異常問題的出現(xiàn)性能的調(diào)整主要是指通過減少查詢時連接運(yùn)算次數(shù)和改變關(guān)系大小等方式提高數(shù)據(jù)處理速度優(yōu)化與調(diào)整關(guān)系模式的規(guī)范化過程主要包括以下幾個步驟:

(1)確定數(shù)據(jù)依賴

(2)參照最小覆蓋算法對每個關(guān)系模式內(nèi)及關(guān)系模式間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余依賴

(3)逐一分析每個關(guān)系模式屬于第幾范式,一般只要達(dá)到3NF或BCNF即可優(yōu)化與調(diào)整由于性能方面的原因而對關(guān)系模式進(jìn)行的調(diào)整主要包括:

(1)減少連接運(yùn)算

(2)從水平方向和垂直方向?qū)﹃P(guān)系進(jìn)行分解,避免出現(xiàn)過大的關(guān)系優(yōu)化與調(diào)整得到優(yōu)化的系統(tǒng)全局模式后,還需針對不同局部應(yīng)用設(shè)計(jì)出用戶子模式即外模式。設(shè)計(jì)時應(yīng)注意:

(1)能適應(yīng)不同用戶的使用需求

(2)提供一定的邏輯數(shù)據(jù)獨(dú)立性

(3)數(shù)據(jù)安全性用戶子模式設(shè)計(jì)5.5物理設(shè)計(jì)任何數(shù)據(jù)庫最終都要存儲在物理設(shè)備上。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(存儲結(jié)構(gòu)與存取方法)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)數(shù)據(jù)庫物理結(jié)構(gòu)依賴于給定的DBMS、OS及硬件系統(tǒng),因此設(shè)計(jì)人員必須(1)充分了解所用DBMS的內(nèi)部特征,特別是存儲結(jié)構(gòu)和存取方法;(2)充分了解應(yīng)用環(huán)境,特別是應(yīng)用的處理頻率和響應(yīng)時間要求;(3)充分了解外存設(shè)備的特性物理設(shè)計(jì)的步驟確定數(shù)據(jù)的存儲結(jié)構(gòu)確定數(shù)據(jù)的存放位置確定數(shù)據(jù)的存取方法確定系統(tǒng)配置對物理結(jié)構(gòu)進(jìn)行評價確定數(shù)據(jù)的存儲結(jié)構(gòu)確定數(shù)據(jù)庫存儲結(jié)構(gòu)時要綜合考慮存取時間、存儲空間利用率和維護(hù)代價三方面的因素但是,這三個方面常常是相互矛盾的,例如消除一切冗余數(shù)據(jù)雖然能夠節(jié)約存儲空間,但往往會導(dǎo)致檢索代價的增加,因此必須進(jìn)行權(quán)衡,選擇一個折中方案確定數(shù)據(jù)的存放位置目前許多計(jì)算機(jī)都有多個磁盤,因此進(jìn)行物理設(shè)計(jì)時可以考慮將表和索引分別放在不同的磁盤上,在查詢時,由于兩個磁盤驅(qū)動器分別在工作,因而可以保證物理讀寫速度比較快可以將比較大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效此外還可以將日志文件與數(shù)據(jù)庫對象(表、索引等)放在不同的磁盤以改進(jìn)系統(tǒng)的性能數(shù)據(jù)可以按照使用頻繁程度或者穩(wěn)定程度進(jìn)行劃分并確定其存儲位置,對于需要頻繁訪問的大關(guān)系,可以考慮將其按照一定的原則進(jìn)行分片,然后放置在不同的磁盤上也可以將索引和具體的數(shù)據(jù)文件放置在不同的磁盤上,同樣可以提高I/O速度確定數(shù)據(jù)的存放位置將數(shù)據(jù)劃分到不同的磁盤驅(qū)動器或磁盤陣列上的設(shè)計(jì)參考原則:

(1)減少磁盤訪問沖突,提高I/O并行性

(2)分散需要頻繁訪問的數(shù)據(jù),均衡I/O負(fù)載

(3)提高關(guān)鍵數(shù)據(jù)存取速度確定數(shù)據(jù)的存放位置確定數(shù)據(jù)的存取方法存取方式設(shè)計(jì)的任務(wù)就是確定采用何種存取路徑以獲得最快的數(shù)據(jù)存取速度,DBMS一般都會提供索引、聚簇、散列等常見的存取路徑供選擇,其中索引是使用最多的存取方法存取路徑的確定并不是惟一的,同一個數(shù)據(jù)對象上可以有滿足不同應(yīng)用需求的多種存取方式同時存在確定數(shù)據(jù)的存取方法在關(guān)系數(shù)據(jù)庫中,選擇存取路徑主要是指確定如何建立索引例如,應(yīng)把哪些域作為次碼建立次索引,建立單碼索引還是組合索引,建立多少個為合適,是否建立聚集索引等索引法為加快按某個屬性(組)進(jìn)行存取的效率,根據(jù)該屬性(組)建立索引,如B+樹索引建立在單個關(guān)系上聚簇法為提高按聚簇碼進(jìn)行查詢的效率,將聚簇碼上具有相同值的元組存放在連續(xù)物理塊一個數(shù)據(jù)庫可以建立多個聚簇,但一個關(guān)系只能由一個聚簇聚簇可以建立在單表上,也可建立在進(jìn)行連接操作的多個表上SQL中與聚簇有關(guān)的操作如ORDERBY,GROUPBY,UNION,DISTINCT等常用的存取方法HASH法設(shè)計(jì)合理的HASH函數(shù),根據(jù)關(guān)鍵字值計(jì)算得到存儲地址對可能出現(xiàn)的地址沖突現(xiàn)象設(shè)計(jì)合理的解決方案當(dāng)某屬性(組)主要出現(xiàn)在等連接條件或相等比較條件中,而且關(guān)系的大小可以預(yù)知,或關(guān)系大小動態(tài)變化而DBMS提供了HASH存取方法時,可考慮選用常用的存取方法設(shè)計(jì)數(shù)據(jù)的存取路徑就是確定在哪些不同的屬性或?qū)傩约仙蠎?yīng)建立何種類型的索引,對于以下幾種情況可以考慮建立索引:(1)關(guān)系的主鍵和外鍵上應(yīng)該建立索引(2)對于經(jīng)常作為連接條件或查詢條件的屬性或?qū)傩约?3)有些查詢無需訪問具體數(shù)據(jù)通過查找索引就可以直接給出結(jié)果,例如帶有MIN、MAX、AVG、SUM、COUNT等聚集函數(shù)的查詢以及帶有存在謂詞EXISTS的查詢,可以在這些屬性上建立索引。(4)對于以讀操作為主的關(guān)系,可以多建立一些索引確定數(shù)據(jù)的存取方法

對于以下的幾種情況,不適宜建立索引:

(1)對于不經(jīng)常使用的屬性不需要建立索引,否則反而會增加維護(hù)開銷。

(2)屬性值很少或?qū)傩灾捣植疾痪鶆虻膶傩裕灰私⑺饕?/p>

(3)對于頻繁變動的或較小的關(guān)系,不宜建立索引確定數(shù)據(jù)的存取方法聚簇可以有效提高在物理上連續(xù)存儲的相關(guān)數(shù)據(jù)的存取速度,因此在實(shí)際當(dāng)中常常也會采用聚簇的方法作為存取路徑之一確定數(shù)據(jù)的存取方法對于以下的幾種情況,可以考慮采用聚簇的存取方式:

(1)對于經(jīng)常進(jìn)行等值查詢的屬性,可以為其建立聚簇

(2)對聚簇屬性的存取應(yīng)該是關(guān)系上的主要應(yīng)用,而且很少訪問其它屬性集,特別的,當(dāng)SQL語句中含有與聚簇屬性有關(guān)的ORDERBY、GROUPBY、UNION、DISTINCT等子句時,聚簇是非常有利的

(3)聚簇屬性上每個取值所對應(yīng)的元組個數(shù)應(yīng)比較多,否則聚簇的性能優(yōu)勢并不明顯

(4)聚簇屬性上的取值應(yīng)相對穩(wěn)定,這樣可以降低聚簇的維護(hù)開銷確定數(shù)據(jù)的存取方法確定系統(tǒng)配置DBMS產(chǎn)品一般都提供了一些存儲分配參數(shù),供設(shè)計(jì)人員和DBA對數(shù)據(jù)庫進(jìn)行物理優(yōu)化初始情況下,系統(tǒng)都為這些變量賦予了合理的缺省值但是這些值不一定適合每一種應(yīng)用環(huán)境,在進(jìn)行物理設(shè)計(jì)時,需要重新對這些變量賦值以改善系統(tǒng)的性能確定系統(tǒng)配置通常情況下,這些配置變量包括:同時使用數(shù)據(jù)庫的用戶數(shù),同時打開的數(shù)據(jù)庫對象數(shù),使用的緩沖區(qū)長度、個數(shù),時間片大小、數(shù)據(jù)庫的大小,裝填因子,鎖的數(shù)目等等,這些參數(shù)值影響存取時間和存儲空間的分配,在物理設(shè)計(jì)時就要根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,以使系統(tǒng)性能最優(yōu)確定系統(tǒng)配置在物理設(shè)計(jì)時對系統(tǒng)配置變量的調(diào)整只是初步的,在系統(tǒng)運(yùn)行時還要根據(jù)系統(tǒng)實(shí)際運(yùn)行情況做進(jìn)一步的調(diào)整,以期切實(shí)改進(jìn)系統(tǒng)性能物理結(jié)構(gòu)評價數(shù)據(jù)庫物理設(shè)計(jì)過程中需要對時間效率、空間效率、維護(hù)代價和各種用戶要求進(jìn)行權(quán)衡,其結(jié)果可以產(chǎn)生多種方案,數(shù)據(jù)庫設(shè)計(jì)人員必須對這些方案進(jìn)行細(xì)致的評價,從中選擇一個較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu)物理結(jié)構(gòu)評價評價物理數(shù)據(jù)庫的方法很大程度上依賴于所選用的DBMS,主要是從定量估算各種方案的存儲空間、存取時間和維護(hù)代價入手,對估算結(jié)果進(jìn)行權(quán)衡、比較,選擇出一個較優(yōu)的合理的物理結(jié)構(gòu)如果該結(jié)構(gòu)不符合用戶需求,則需要修改設(shè)計(jì)5.6IDEF1X方法簡介IDEF是ICAMDEFinitionmethod的縮寫,是美國空軍在70年代末80年代初ICAM(IntegratedComputerAidedManufacturing)工程在結(jié)構(gòu)化分析和設(shè)計(jì)方法基礎(chǔ)上發(fā)展的一套系統(tǒng)分析和設(shè)計(jì)方法IDEF1X是建立數(shù)據(jù)模型的經(jīng)典方法之一美國政府與工業(yè)界已使用超過10年IDEF方法系列IDEF0-功能建模:通過分解/分類功能間的聯(lián)系來描述系統(tǒng)功能IDEF1-信息建模:用于描述企業(yè)重要管理資料的方法IDEF1X-數(shù)據(jù)建模:關(guān)系數(shù)據(jù)庫的設(shè)計(jì)方法IDEF2-動態(tài)建模:一種以數(shù)字邏輯為基礎(chǔ)的模擬方法IDEF3-過程描述獲取方法:為自使用者描述系統(tǒng)結(jié)構(gòu)的方法IDEF方法系列IDEF4-面向?qū)ο蟮脑O(shè)計(jì)方法:面向?qū)ο笫綌?shù)據(jù)庫的設(shè)計(jì)方法IDEF5-實(shí)體描述獲取方法:是一種收集事實(shí)與資料的方法IDEF6-設(shè)計(jì)理論獲取方法:是信息系統(tǒng)設(shè)計(jì)原理的描述方法IDEF8-人-系統(tǒng)交互設(shè)計(jì)方法IDEF9-業(yè)務(wù)約束發(fā)現(xiàn)方法…IDEF1X中的語言元素實(shí)體用方框表示,有兩種實(shí)體類別獨(dú)立實(shí)體:其存在不依賴于其他實(shí)體非獨(dú)立實(shí)體:其存在依賴于其他實(shí)體訂單訂單明細(xì)用直角方框表示用園角方框表示IDEF1X中的語言元素屬性寫在實(shí)體框中,有兩種屬性類別鍵屬性(Key),非鍵屬性(NonKey)候選鍵:可用來唯一標(biāo)識實(shí)體的屬性或?qū)傩越M主鍵(PK):被選擇用來惟一標(biāo)識實(shí)體的候選鍵實(shí)體框中橫線上面的屬性就是主鍵屬性;實(shí)體框中橫線下面的屬性就是非主屬性。產(chǎn)品號品名規(guī)格價格

數(shù)量倉庫號(FK)產(chǎn)品主鍵屬性非主鍵屬性PKReview(屬性舉例)實(shí)體名IDEF1X中的語言元素(10/23)聯(lián)系(Relationship)——兩實(shí)體之間的關(guān)系聯(lián)系用實(shí)體間的連線表示;聯(lián)系動詞標(biāo)注在線的旁邊。學(xué)生課程

選修學(xué)生

選修

課程(聯(lián)系舉例)IDEF1X中的語言元素聯(lián)系基數(shù)的表示(多端用一個圓點(diǎn)表示)E1

E2

1:N(包括1:1)M:N

E2

E1

外鍵(FK)的表示在子實(shí)體的屬性后可標(biāo)有“(FK)”;外鍵可能在橫線上面,也可能在橫線下面(即外鍵即可作為主鍵,也可作為非主鍵)倉庫號地點(diǎn)面積倉庫產(chǎn)品號品名規(guī)格價格

數(shù)量倉庫號(FK)產(chǎn)品存放外鍵IDEF1X中的語言元素根據(jù)子實(shí)體與父實(shí)體的依賴性:聯(lián)系分為“標(biāo)識”關(guān)系和“非標(biāo)識”關(guān)系“標(biāo)識”關(guān)系(IdentifyingRelationship)——或稱“確定”關(guān)系父實(shí)體主鍵貢獻(xiàn)給子實(shí)體作為子實(shí)體主鍵的一部分標(biāo)識關(guān)系的特點(diǎn):子實(shí)體由父實(shí)體決定;子實(shí)體的存在依賴于父實(shí)體。表示方法:連線為實(shí)線;子實(shí)體的外框?yàn)閳@角框;父實(shí)體貢獻(xiàn)的主鍵屬性在子實(shí)體中作為主鍵屬性,并在屬性名后標(biāo)有“(FK)”,表示它來自于父實(shí)體。倉庫號地點(diǎn)面積倉庫產(chǎn)品存放產(chǎn)品號倉庫號(FK)品名規(guī)格價格數(shù)量IDEF1X中的語言元素“非標(biāo)識”關(guān)系(Non-IdentifyingRelationship)——或稱“非確定”關(guān)系父實(shí)體主鍵貢獻(xiàn)給子實(shí)體作為子實(shí)體非主鍵屬性(非PK)的一部分。有兩種非標(biāo)識關(guān)系:強(qiáng)制性的和非強(qiáng)制性的強(qiáng)制性的非強(qiáng)制性的特點(diǎn)?子實(shí)體不由父實(shí)體決定?子實(shí)體的存在仍需依賴于父實(shí)體?子實(shí)體不由父實(shí)體決定?子實(shí)體的存在無需依賴于父實(shí)體表示方法?連線為虛線;?父實(shí)體貢獻(xiàn)的主鍵屬性放在子實(shí)體中作為非主鍵屬性,并可標(biāo)有“(FK)”。?連線為虛線,父實(shí)體端有菱形標(biāo)志;?父實(shí)體貢獻(xiàn)的主鍵屬性放在子實(shí)體中作為非主鍵屬性,并可標(biāo)有“(FK)”。提交/從..得到客戶客戶標(biāo)識客戶名稱客戶地址

客戶電話郵政編碼訂貨單訂單號客戶標(biāo)識

(FK)提交日期訂單狀態(tài)交貨日期部門部門號部門名稱部門地址

員工員工號部門號

(FK)員工姓名員工地址員工電話聘用/屬于IDEF1X中的語言元素非標(biāo)識關(guān)系的例子:預(yù)訂航班座位每一次飛行中,座位由哪個乘客坐是變化的,所以乘客不能作為主鍵身份證號姓名地址

電話乘客航班號機(jī)型起飛時間航班座位號日期航班號(FK)身份證號(FK)占據(jù)座位已預(yù)訂IDEF1X中的語言元素多對多的關(guān)系(M:N)是一種不確定的關(guān)系主鍵並不貢獻(xiàn)給子實(shí)體做為外鍵必須有兩種動詞來描述實(shí)體之間的關(guān)系轉(zhuǎn)化為關(guān)系模型時要轉(zhuǎn)化為兩個一對多(1:N)關(guān)系訂購自/

提供零部件供應(yīng)商IDEF1X中的語言元素多對多關(guān)系的例子:學(xué)生選課學(xué)號姓名性別

班級學(xué)生課程號課程名學(xué)分學(xué)時數(shù)課程選修/被…選修學(xué)號姓名性別

班級學(xué)生課程號課程名學(xué)分學(xué)時數(shù)課程選修的課程記錄在學(xué)號(FK)課程號(FK)成績選修表被哪些學(xué)生選修記錄在IDEF1X中的語言元素IDEF1X中的關(guān)系類型總覽非強(qiáng)制強(qiáng)制訂單訂單明細(xì)訂單號

(FK)產(chǎn)品號

數(shù)量訂單號客戶號客戶訂單訂單號客戶號

(FK)發(fā)貨日期客戶號客戶名員工部門員工號部門號

(FK)員工名部門號部門名零件零件號零件名稱供應(yīng)商供應(yīng)商號供應(yīng)商名相關(guān)性存在性標(biāo)識性

YesYesYesNoNo

No-

-表示標(biāo)識非標(biāo)識M:N關(guān)系類型IDEF1X中定義關(guān)系的步驟1)使用實(shí)體聯(lián)系矩陣來標(biāo)識實(shí)體間的關(guān)系2)確定關(guān)系的基數(shù)、關(guān)系動詞和說明3)確定關(guān)系類型:

●標(biāo)識

●非標(biāo)識(強(qiáng)制/非強(qiáng)制)

●非確定

●分類根據(jù)實(shí)體間的聯(lián)系類型建立關(guān)系畫出從父實(shí)體到子實(shí)體的標(biāo)識關(guān)系畫出M

:N關(guān)系強(qiáng)制或非強(qiáng)制?畫出從父實(shí)體到子實(shí)體的非標(biāo)識關(guān)系FK:NOTNULL畫出從父實(shí)體到子實(shí)體的非標(biāo)識關(guān)系FK:NULL1:N或

M:N?M

:N1

:N決定父子關(guān)系標(biāo)識或非標(biāo)識?Start非標(biāo)識標(biāo)識強(qiáng)制非強(qiáng)制轉(zhuǎn)換為兩個1:N關(guān)系使用角色角色的用途當(dāng)原有的屬性和遷移進(jìn)來的外鍵屬性具有同樣的名字時,可以用角色名來區(qū)別它們否則,將把它們作為相同的屬性看待(該處理稱為統(tǒng)一化)例:左圖為沒有角色名的IDEF1X圖,右圖為有角色名的IDEF1X圖。

客戶編號名稱地址

電話訂單編號(FK)數(shù)量簽訂日期交貨日期編號名稱規(guī)格

價格產(chǎn)品客戶編號名稱地址

電話訂單編號客戶.

編號(FK)產(chǎn)品.

編號(FK)數(shù)量簽訂日期交貨日期編號名稱規(guī)格

價格產(chǎn)品(角色名舉例)Logical→RelationshipProperties→Rolename

使用角色角色名(Rolename)角色名是外鍵屬性的新名字,它定義了一個新屬性,用來描述由關(guān)系體現(xiàn)的業(yè)務(wù)。格式:角色名.外鍵屬性的原始名字例:各項(xiàng)賽事中各個球員的得分情況

球隊(duì)標(biāo)識球隊(duì)名稱球員姓名球員所屬球隊(duì).球隊(duì)標(biāo)識(FK)年齡比賽號

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論