1. De relatie tussen het oorspronkelijke document en de entiteit
Het kan één-op-één, één-op-velen en veel-op-veel relaties zijn. In het algemeen zijn het één-op-één relaties: dat wil zeggen een paar originele documenten zou en alleen moeten overeenkomen met één entiteit. In speciale gevallen kunnen het één-op-veel of veel-op-één relaties zijn, d.w.z. één origineel document komt overeen met meerdere realiteiten lichaam, of meerdere originele documenten die bij een entiteit horen. De entiteit hier kan worden begrepen als een basistabel. Na het verduidelijken van deze overeenkomst, ontwerp voor ons De toegangsinterface is erg handig. 〖Voorbeeld 1〗: De informatie van een werknemerscv komt overeen met drie basistabellen in het personeelsinformatiesysteem: basisinformatietabel voor werknemers en samenleving Relatietafel, formulier voor werk-cv. Dit is een typisch voorbeeld van "één origineel document komt overeen met meerdere entiteiten". 2. Primaire en vreemde sleutels In het algemeen mag een entiteit noch een primaire noch een vreemde sleutel hebben. In het E-R-diagram kunnen de entiteiten in het bladgedeelte de primaire sleutel definiëren, Het is ook mogelijk om geen primaire sleutel te definiëren (omdat deze geen kinderen heeft), maar deze moet wel een vreemde sleutel hebben (omdat ze een vader heeft). Het ontwerp van primaire en vreemde sleutels neemt een belangrijke plaats in bij het ontwerp van globale databases. Wanneer het ontwerp van de globale database is voltooid, is er een Amerikaanse databaseontwerp-experts zeiden: "Sleutels, sleutels overal, niets dan sleutels", dit is zijn ervaring met databaseontwerp Het weerspiegelt ook zijn sterk abstracte ideeën over de kern van informatiesystemen (datamodellen). Omdat: de primaire sleutel een zeer abstracte entiteit is, en de primaire sleutel wordt geassocieerd met Een paar vreemde sleutels die een verbinding tussen entiteiten vertegenwoordigen. 3. De aard van de basistabel De basistabel verschilt van de tussenliggende tabel en de tijdelijke tabel omdat deze de volgende vier kenmerken heeft: (1) Atomiciteit. Velden in de basistabel zijn niet langer decompositiebaar. (2) Primitiviteit. De records in de basistabel zijn records van de oorspronkelijke data (de onderliggende data). (3) Deductief. Alle uitvoerdata kan worden afgeleid uit de gegevens in de basistabel en de codetabel. (4) Stabiliteit. De structuur van de basistabel is relatief stabiel en de records in de tabel zouden lange tijd bewaard moeten blijven. Na het begrijpen van de aard van basistabellen kunnen basistabellen bij het ontwerpen van databases worden onderscheiden van tussenliggende tabellen en tijdelijke tabellen. 4. Paradigmastandaarden De relatie tussen de basistabel en haar velden moet zoveel mogelijk voldoen aan het derde paradigma. Databaseontwerpen die echter aan het derde paradigma voldoen, doen dat vaak niet Het beste ontwerp. Om de operationele efficiëntie van databases te verbeteren, is het vaak noodzakelijk om de paradigmastandaard te verlagen: de redundantie op passende wijze te vergroten om ruimte voor tijd te creëren Het doel van. Voorbeeld 2: Er is een basistabel voor de opslag van goederen, zoals weergegeven in Tabel 1. De aanwezigheid van het veld "Bedrag" geeft aan dat de tabel niet is ontworpen om te worden voldaan Het derde paradigma is voldoende, omdat "hoeveelheid" kan worden verkregen door "eenheidsprijs" te vermenigvuldigen met "hoeveelheid", wat aangeeft dat "hoeveelheid" een redundant veld is. Echter, verhoog Het redundante veld van "hoeveelheid" kan de snelheid van querystatistieken verbeteren, wat de praktijk is van het verwisselen van ruimte voor tijd. In Rose 2002 zijn er twee typen voorgeschreven kolommen: datakolommen en berekende kolommen. Een kolom als "bedrag" wordt een "berekeningskolom" genoemd, en Kolommen zoals "Eenheidsprijs" en "Kwantiteit" worden "datakolommen" genoemd. Tabel 1 Tabelstructuur van de grondstoffentabel Productnaam, Productmodel, Eenheidsprijs, Hoeveelheid, Bedrag TV 29 inch 2.500 40 100.000
5. Begrijp de drie paradigma's in gewone taal Het begrijpen van de drie paradigma's in gewone taal is van groot belang voor databaseontwerp. In databaseontwerp, om de drie paradigma's beter toe te passen, wordt gewoon Drie paradigma's moeten in gewone taal worden begrepen: Het eerste paradigma: 1NF is een atomaire beperking op attributen, die vereist dat attributen atomair zijn en niet langer kunnen worden ontbonden; Het tweede paradigma: 2NF is de uniciteitsbeperking op records, waarbij records een unieke identificatie moeten hebben, dat wil zeggen de uniciteit van de entiteit; Paradigma 3: 3NF is een beperking op veldredundantie, dat wil zeggen, geen veld kan worden afgeleid uit andere velden, het vereist dat het veld niet redundant is
。 Geen enkel redundant databaseontwerp kan dat. Echter, een database zonder redundantie is niet per se de beste database, soms om het geluk te verbeteren Om efficiëntie te bereiken, is het noodzakelijk de paradigmastandaard te verlagen en redundante data passend te bewaren. De specifieke aanpak is om het derde paradigma te volgen bij het ontwerpen van conceptuele datamodellen , het werk om de paradigmastandaard te verlagen wordt meegenomen in het ontwerp van het fysische datamodel. Het verlagen van het paradigma betekent het toevoegen van velden die redundantie toestaan. 6. Wees goed in het identificeren en correct omgaan met veel-op-veel relaties Als er een veel-op-veel relatie is tussen twee entiteiten, moet die relatie worden geëlimineerd. De manier om het te elimineren is door een derde reel tussen de twee toe te voegen lichaam. Op deze manier is wat vroeger een veel-op-veel-relatie was, nu twee één-op-veel-relaties geworden. De attributen van de oorspronkelijke twee entiteiten moeten redelijk verdeeld worden Ga naar de drie entiteiten. De derde entiteit hier is in wezen een complexere relatie, die overeenkomt met een basistabel. Over het algemeen gelden getallen De bibliotheekontwerptool kan many-to-many relaties niet herkennen, maar kan wel many-to-many relaties aan. Voorbeeld 3: In het "Library Information System" is "book" een entiteit, en "reader" is ook een entiteit. Deze twee entiteiten zijn hetzelfde De relatie tussen boeken is een typische veel-op-veel-relatie: een boek kan door meerdere lezers op verschillende momenten worden geleend, en één lezer kan er meer lenen Dit boek. Hiervoor moet er een derde entiteit tussen de twee worden toegevoegd, die "boeken lenen en teruggeven" wordt genoemd, en de eigenschappen zijn: tijd lenen en lenen Het heeft ook een logo (0 betekent een boek lenen, 1 betekent een boek terugbrengen), daarnaast moet het ook twee vreemde sleutels hebben (de primaire sleutel van "boek" en de primaire sleutel van "lezer"), zodat Het verbindt zich met "boeken" en "lezers". 7. De waardemethode van de primaire sleutel PK PK is een inter-tabel verbindingstool voor programmeurs, dat een reeks getallen kan zijn zonder fysieke betekenis, die automatisch door het programma wordt opgeteld aan 1. Ja is een fysiek betekenisvolle veldnaam of een combinatie van veldnamen. Maar het eerste is beter dan het tweede. Wanneer PK een combinatie is van veldnamen, suggereer dan een veldnummer Tel niet te veel, want de index neemt niet alleen veel ruimte in, maar vertraagt ook. 8. Zorg voor de juiste dataredundantie De herhaling van primaire en vreemde sleutels in meerdere tabellen is geen concept van dataredundantie, en veel mensen zijn zich daar niet van bewust 。 De herhaling van niet-sleutelvelden is dataredundantie! En het is een laag-niveau redundantie, dat wil zeggen, repetitieve redundantie. Geavanceerde redundantie is niet veldgebaseerd Herhaaldelijk, maar afgeleiden van velden. Voorbeeld 4: De drie velden "eenheidsprijs, hoeveelheid en hoeveelheid" in het product, "hoeveelheid", zijn afgeleid van de "eenheidsprijs" vermenigvuldigd met "hoeveelheid" Het is redundantie, en het is een soort geavanceerde redundantie. Het doel van redundantie is om de verwerkingssnelheid te verhogen. Alleen laag-niveau redundantie zal het aantal verhogen inconsistentie van gegevens, omdat dezelfde gegevens meerdere keren kunnen worden ingevoerd vanuit verschillende tijden, plaatsen en rollen. Daarom pleiten wij voor geavanceerde redundantie (taart) redundantie van nature), en verzet zich tegen laag-niveau redundantie (herhaalde redundantie). 9. Er is geen standaardantwoord voor E-R-diagrammen Er is geen standaardantwoord op het E-R-diagram van een informatiesysteem, omdat het ontwerp en de tekenmethode niet uniek zijn, zolang het de door het systeem vereiste werkzaamheden dekt De reikwijdte en functionele inhoud zijn haalbaar. In plaats daarvan is het nodig het E--R-diagram aan te passen. Hoewel er geen enkel standaardantwoord is, betekent dat niet dat het willekeurig kan zijn Ontwerp. De criteria voor een goed E-R diagram zijn: duidelijke structuur, beknopte associatie, matig aantal entiteiten, redelijke attribuuttoewijzing en geen laag-niveau redundantie. 10. View-technieken zijn nuttig bij databaseontwerp In tegenstelling tot basistabellen, codetabellen en tussenliggende tabellen, zijn views virtuele tabellen die afhankelijk zijn van de echte tabellen van de databron om te bestaan. Views zijn voor programmeurs Een venster dat de database gebruikt is een vorm van basistabeldatasynthese, een methode van gegevensverwerking en een soort gebruikersgegevensvertrouwelijkheid betekent. Om complexe verwerking uit te voeren, de rekensnelheid te verhogen en opslagruimte te besparen, mag de definitiediepte van het beeld doorgaans niet meer dan drie lagen beslaan. Ongeveer drie verdiepingen Als de view nog steeds niet voldoende is, moet je een tijdelijke tabel op de view definiëren en vervolgens een view op de tijdelijke table. Op deze manier wordt de diepte van het beeld herhaaldelijk gedefinieerd Geen beperkingen. Voor bepaalde informatiesystemen die verband houden met nationale politieke, economische, technologische, militaire en veiligheidsbelangen, is de rol van opvattingen nog belangrijker. Deze Nadat het fysieke ontwerp van de basistabel van het systeem is voltooid, wordt de eerste laag weergaven onmiddellijk op de basistabel vastgesteld, en het aantal en de structuur van deze laagweergave zijn hetzelfde als die van de basistabel Het aantal en de structuur zijn precies hetzelfde. En het is bepaald dat alle programmeurs alleen op de view mogen werken. Alleen de databasebeheerder, met De "veiligheidssleutel" die door meerdere medewerkers wordt vastgehouden, kan direct op de basistafel worden bediend. Lezers worden uitgenodigd na te denken: waarom is dat? 11. Tussenliggende tabellen, statements en tijdelijke tabellen Een tussenliggende tabel is een tabel die statistieken opslaat, is ontworpen voor datawarehousing, outputrapporten of queryresultaten, en soms heeft het geen primaire sleutel met vreemde sleutels (behalve datawarehouses). Tijdelijke tabellen worden door programmeurs ontworpen om tijdelijke records op te slaan voor persoonlijk gebruik. De basis- en tussentabellen worden onderhouden door de DBA Tijdelijke tabellen worden automatisch door de programmeur zelf bijgehouden. 12. Integriteitsbeperkingen komen tot uiting in drie aspecten Domeinintegriteit: Gebruik Check om constraints te implementeren, en in de databaseontwerptool is er een Ch bij het definiëren van het waardebereik van het veld ECK-knop, waarmee de waardestad van het veld wordt gedefinieerd. Referentieintegriteit: Geïmplementeerd met triggers op PK-, FK- en tabelniveau. Gebruikersgedefinieerde integriteit: Het zijn enkele bedrijfsregels die worden geïmplementeerd met opgeslagen procedures en triggers. 13. De methode om patching in databaseontwerp te voorkomen is het principe van "drie minder" (1) Hoe minder tabellen in een database, hoe beter. Alleen als het aantal tabellen wordt verminderd, kan worden gezegd dat het E-R-diagram van het systeem klein en fijn is, en wordt het verwijderd De dubbele en redundante entiteiten vormen een hoge mate van abstractie van de objectieve wereld, en systematische data-integratie wordt uitgevoerd om patchontwerp te voorkomen; (2) Hoe minder velden in een tabel die primaire sleutels combineren, hoe beter. Vanwege de rol van de primaire sleutel is de ene het bouwen van de primaire sleutelindex, en de andere dient als subtabel vreemde sleutels, waardoor het aantal velden in de combinatie van primaire sleutels wordt verminderd, wat niet alleen looptijd bespaart, maar ook indexopslagruimte; (3) Hoe minder velden in een tabel, hoe beter. Slechts een klein aantal velden geeft aan dat er geen dataduplicatie in het systeem is Er is weinig dataredundantie en, belangrijker nog, lezers worden aangemoedigd om te leren "rijen te wijzigen", wat voorkomt dat velden in de hoofdtabel van de subtabel worden opgehaald , waardoor veel vrije velden in de hoofdtabel overblijven. De zogenaamde "kolomwisselrij" is bedoeld om een deel van de inhoud van de hoofdtabel eruit te halen en een aparte te maken Sub-tabel. Deze methode is heel eenvoudig, sommige mensen raken er gewoon niet aan gewend, nemen het niet over en implementeren het niet. Het praktische principe van databaseontwerp is het vinden van de juiste balans tussen dataredundantie en verwerkingssnelheid. De "drie minder" is een holistisch overzicht Gedachte, alomvattende opvattingen, kunnen een bepaald principe niet isoleren. Het principe is relatief, niet absoluut. Het principe van "nog drie meer" is zeker verkeerd. Probeer het Denk na: Als dezelfde functie van het systeem wordt behandeld, is het E-R-diagram van 100 entiteiten (in totaal 1.000 attributen) zeker beter dan het E-R-diagram van 200 entiteiten (in totaal 2.000 attributen) Het E-R-diagram is veel beter. Het pleiten voor het principe van "drie minder" is om lezers te laten leren databaseontwerptechnologie te gebruiken voor systematische data-integratie. De stappen voor data-integratie zijn te volgen: Het bestandssysteem is geïntegreerd in een applicatiedatabase, de applicatiedatabase is geïntegreerd in een onderwerpdatabase, en de onderwerpdatabase is geïntegreerd in een globale uitgebreide database. Hoe hoger de mate van integratie, hoe sterker de gegevensdeling en hoe minder informatie-eilanden aanwezig zijn Het aantal primaire sleutels en het aantal attributen zal kleiner zijn. Het doel van het bepleiten van het principe van "drie minder" is om te voorkomen dat lezers patchtechnologie gebruiken om voortdurend de database toe te voegen, te verwijderen en te wijzigen, zodat bedrijfsgegevens worden gemaakt De bibliotheek is een "vuilnishoop" geworden van willekeurig ontworpen databasetabellen, of een "rommel" van databasetabellen, en veroorzaakt uiteindelijk de basistabellen en generaties in de database De codetabellen, tussenliggende tabellen en tijdelijke tabellen zijn rommelig en talloos, waardoor het onvermogen is om de informatiesystemen van ondernemingen en instellingen te onderhouden en te verlammen. Het principe van "nog drie meer" kan door iedereen worden toegepast, wat de drogreden is van de "patchmethode" om databases te ontwerpen. Het principe van "drie minder" Het is een principe van minder maar goed, wat hoge databaseontwerpvaardigheden en kunst vereist, wat niet iedereen kan doen, omdat dit principe verdwijnt De theoretische basis voor het ontwerpen van de database met behulp van de "patchmethode". 14. Manieren om de efficiëntie van database-operaties te verbeteren Onder de gegeven systeemhardware- en systeemsoftwarevoorwaarden zijn de methoden om de operationele efficiëntie van het databasesysteem te verbeteren: (1) In het fysieke ontwerp van de database het paradigma verminderen, de redundantie vergroten, minder triggers gebruiken en meer opgeslagen procedures gebruiken. (2) Wanneer de berekening zeer complex is en het aantal records zeer groot is (zoals 10 miljoen), moet de complexe berekening eerst buiten de database liggen Nadat de bestandssysteemmethode is berekend en verwerkt in de C++-taal, wordt deze uiteindelijk aan de tabel toegevoegd. Dit is de ervaring van het ontwerpen van telecomfactureringssystemen. (3) Als blijkt dat een tabel te veel records bevat, zoals meer dan 10 miljoen, moet de tabel horizontaal worden verdeeld. De praktijk van horizontale segmentatie is: Verdeel het record van de tabel horizontaal in twee tabellen op basis van een bepaalde waarde van de primaire sleutel PK van de tabel. Als een tabel te veel velden bevat, zoals overschrijdend Eighty wordt de tafel verticaal verdeeld en de oorspronkelijke tafel is verdeeld in twee tabellen. (4) Systeemoptimalisatie van het databasebeheersysteem DBMS, dat wil zeggen optimalisatie van verschillende systeemparameters, zoals het aantal buffers. (5) Bij het gebruik van data-georiënteerde SQL-taal voor programmeren, probeer dan optimalisatie-algoritmen toe te passen. Kortom, om de operationele efficiëntie van de database te verbeteren, is het noodzakelijk het databasesysteem, het databaseontwerp en de programma-implementatie te optimaliseren , deze drie niveaus werken tegelijkertijd hard. De bovenstaande veertien vaardigheden worden geleidelijk samengevat door veel mensen in een groot aantal database-analyse- en ontwerppraktijken. Voor deze ervaringen Lezers moeten niet star of routinematig zijn, maar moeten het begrijpen en verwerken, waarheid zoeken in feiten, en flexibel beheersen. En geleidelijk doen: stuur de aanvraag in tentoonstelling, toepassing in ontwikkeling.
|