Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12075|Antwoord: 0

[Bron] Databaseontwerpprincipes (Herdruk) Veertien Tips

[Link kopiëren]
Geplaatst op 09-04-2015 21:00:54 | | |

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.




Vorig:Je leert je gemakkelijk hoe je XP+Linux+Win7 drie-systeem tutorial maakt
Volgend:Bi Fujian's opmerkingen "Outsmarting Tiger Mountain" over onfatsoenlijke video en berisping van voorzitter Mao
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com