Hoe een relationeel gegevensmodel te maken
Heeft u de oprichting van een bedrijfsgegevensmodel toegewezen gekregen? Moet u een relationele database bouwen die terabytes aan gegevens kan bevatten?
stappen
1
Maak je nog geen zorgen over de tafels. Uiteraard maak je een database aan, en de databases (tenminste de relationele) bestaan voornamelijk uit tabellen, die op hun beurt weer zijn opgebouwd uit rijen en kolommen (registers en attributen, waarvan je weet).
2
Zorgen over de relaties tussen entiteiten. Je eerste doel is om een kaart te maken van de relaties die verschillende commerciële objecten zullen hebben. Het is het deel van logische modellering de Fysiek model is de praktische implementatie. Verwar beide niet en combineer ze niet.
3
Bereid je voor om een oorlog alleen te voeren en wijdt je alleen aan kwaliteitsstandaardisatie. De meeste databases zijn zonde omdat hun ontwerpers lui zijn en Ze willen gewoon iets pakken. Het kan altijd later worden opgelost. Ja, natuurlijk.
4
Zodra het tijd is om de tabellen te schrijven, richt u zich op de zoekopdrachten en de soorten tabellen (postcodes, statussen, productcategorieën, enz.).). Je hebt ze nodig voor externe sleutelrelaties in de tabellen waar. Bovendien krijgt u een voorverwarming voordat u de centrale transactietabellen bereikt.
5
Als algemene regel: sla geen gegevens op die kunnen worden afgeleid uit andere velden. Als u de geboortedatum en de startdatum weet, weet u ook de leeftijd op de startdatum - neem deze leeftijd niet op in de tabel.
6
Geen NULL. Een NULL (nul) waarde vertegenwoordigt een ongedefinieerd attribuut van een identiteit. Als een entiteit een bepaald kenmerk kan hebben of niet, moet het worden gemanipuleerd door een kruistabel.
7
De tegenstrijdige NULL-waarden zijn op zichzelf nuttig om kenmerken te identificeren die nog niet door de gebruikers zijn voltooid. Dit is met name handig wanneer een gebruiker een vooraf bepaalde waarde moet selecteren om de toepassing van de juiste bedrijfsregels te bepalen. In geval 2, hoe zou u een adrestabel ontwerpen waarin adres 1 is voltooid en adres 2 niet nodig was, maar als adres 2 is voltooid, moet dit voldoen aan de commerciële regels van het veld? Natuurlijk kun je standaard een lege ruimte instellen, maar is het beter dan te weten dat de gebruiker het veld niet heeft bewerkt? Probeer een derde normale vorm op een internationaal adres ... Het is waarschijnlijk mogelijk, maar houd de complexiteit van gegevensherstructurering op een zinvolle manier in de gaten.
8
NULL / ROT NULL Controleer de databasefora en je zult zien dat het een populair onderwerp is waarbij er verdedigers zijn van de voor- en nadelen van elk forum.
9
Maak uzelf vertrouwd met de gekruiste tafels (veel te veel). Je zult ze overal gebruiken, als je de dingen goed doet. Een voorbeeld is een database van een school met een tabel voor leerkrachten en een school voor leerlingen. Studenten hebben meer dan één docent en docenten hebben meer dan één student, dus de gekruiste tabel, behalve die van `docenten` en `studenten`, heeft twee kolommen met externe toetsen die naar beide wijzen. De primaire sleutel zou de combinatie van die twee zijn.
10
Gebruik een goede conventie voor namen. Plaats de facturen in een tabel met de naam factuur. De producten gaan erin product. De gekruiste tafel zou zijn Productfactuur, of productFectuur, afhankelijk van welke tabel het ware centrum van de relatie is.
11
Als u records repliceert of verzendt, probeert u deze tijdens het ontwikkelen te configureren om te zien hoe deze werkt.
12
De interne vakbonden zijn erg goed, maar waarschijnlijk zijn er ook veel verklaringen van EXTERNE BUITENUNITS die kunnen werken. Wen aan de verschillende verklaringen van vakbonden (behalve UNION).
13
Als je te maken hebt met een overgeërfde applicatie, bouw je je schema hier onafhankelijk van op (kijk er niet eens naar). Concentreer u op de regels en zakelijke relaties die u probeert uit te voeren, maar u kunt worden afgeleid als u kijkt naar hoe iemand anders het heeft opgezet. Zie stap # 4.
14
Het is moeilijk om te migreren van een overervingssysteem naar een strakkere model met een passende normalisatie, maar het kan een beetje gemakkelijker worden gemaakt als tijdelijke tabellen worden gebruikt voor import. Bovendien houdt het tabbladen bij overerving-id`s bij zodat mensen ernaar kunnen zoeken.
tips
- Verwacht niet dat replicaties, opnames of reflecties werken als je naar productie gaat. Ontwikkel en test vanaf het begin. Maak het een deel van uw toepassing.
- Er zijn enkele zeer specifieke gevallen waarin u tabellen moet de-normaliseren om prestatieredenen. Maar dat is gemakkelijk om te doen - focus op het harde deel, dat is om een correcte normalisatie te creëren.
- De flexibiliteit en kracht van een relationeel model zijn verrassend in vergelijking met de vlakkere structuren.
- Omdat je absolute relaties definieert, is een goede manier om vragen te krijgen van onwillige deelnemers om dingen te formuleren zoals Dus is het absoluut waar dat er maar één klant op één factuur kan zijn? Zulke vragen hebben de neiging om een reactie bij mensen op te roepen.
- Met betrekking tot de relaties van entiteiten kan een klant bijvoorbeeld veel telefoonnummers hebben. De klant kan ook veel contacten hebben en elk van hen heeft veel telefoonnummers. Maar een factuur kan alleen aan een klant worden gekoppeld. Er is een accountvertegenwoordiger die aan een klant kan worden toegewezen, behalve in bepaalde gevallen waar er twee zijn, enz. Dit zijn de soorten dingen die u moet definiëren voordat u een regel sql-code schrijft.
- Verlaat de s buiten de tabelnamen (tabel factuur) - het is duidelijk dat aangezien het een database betreft, er waarschijnlijk meer dan één factuur in zit.
- Back-upkopieën zijn ook belangrijk in de ontwikkeling. Zorg ervoor dat je er minstens elke nacht een doet. Controleer ze elke week om ervoor te zorgen dat u geen maanden werk verliest (en waarschijnlijk ook uw werk) in het geval er een enorme hardwarefout is.
waarschuwingen
- Als u probeert code op te slaan (NULL-waarden, de-genormaliseerde tabellen om de verkeerde redenen), zijn er directe en echte gevolgen (wezen, toewijding aan de integriteit van de gegevens, vakbonden die niet werken, enz.).
- Datamodellering is een kritische vaardigheid en er zijn maar weinig mensen die relationele databases op de juiste manier bouwen.
- Sla geen code op omdat het gemakkelijker voor u is. Als ze iets nutteloos willen, moeten ze iemand anders hebben ingehuurd.
- Als u niet op de juiste manier normaliseert, zijn de rapporten uit de database totaal incorrect en uw baas zal heel boos zijn.
Delen op sociale netwerken:
Verwant
- Hoe dynamische tabellen in Excel te maken
- Hoe een inventarisdatabase in Access te maken
- Hoe een database in MySQL te maken
- Hoe een database in Excel te maken
- Hoe een database in SQL Server te maken
- Hoe een tabel in MySQL te maken
- Hoe een E R-diagram te tekenen met de MySQL-databasemanager
- Hoe een query uitvoeren in MS Access 2007
- Hoe herhaalde records in Excel 2007 te verwijderen
- Hoe een MySQL-database te verwijderen
- POJO-klassen en XML-toewijzingen genereren met Hibernate vanuit databases
- Hoe een database te maken met behulp van MS Access
- Hoe een database te hacken
- Hoe Excel-bestanden naar Access te importeren
- Hoe een SQL-query invoegen in Microsoft Excel
- Hoe een klantendatabase te creëren
- Hoe JSON te gebruiken
- Hoe SQL te gebruiken
- Microsoft Access gebruiken
- Hoe PHP en MySQL te leren
- Hoe tabellen in Access te linken