sql >> Database >  >> RDS >> Database

Waarom heb je datamodellering nodig?

U hebt gegevensmodellering nodig om uzelf of uw organisatie veel geld, uren en problemen te besparen. Lees verder om erachter te komen hoe datamodellen hun magie doen.

Gegevensmodellering is het proces van het creëren van een conceptueel beeld van de informatie die een database bevat of zou moeten bevatten. Als resultaat van dit proces wordt een datamodel gecreëerd dat vorm geeft aan data-objecten (al die entiteiten waarvoor informatie moet worden opgeslagen), de associaties of relaties daartussen, en regels of beperkingen die de informatie regelen die de database binnenkomt .

Heel mooi, maar is het echt nodig om met datamodellen te werken? Kunnen we deze stap niet gewoon overslaan, wat tijd besparen en direct beginnen met het maken van objecten in de database? Een cursus databasemodellering geeft antwoord op deze vragen, maar als je een samenvatting wilt, geef ik je genoeg redenen om een ​​datamodel bij de hand te hebben wanneer je met informatie in een database moet werken. Tegen de tijd dat je dit artikel hebt gelezen, ben je het met me eens dat werken met een database zonder een goed model gelijk staat aan het bouwen van een huis – of zelfs een wolkenkrabber – zonder een goede fundering.

Laten we beginnen met twee contexten te beschouwen waarin datamodellering voornamelijk wordt gedaan:

  • Strategische modellering, die wordt uitgevoerd als onderdeel van de algemene informatiesysteemstrategie in een organisatie.
  • Databaseontwerp, dat deel uitmaakt van de ontwerpfase in het softwareontwikkelingsproces.

In beide situaties zijn er genoeg redenen om aan datamodellering te doen. Eerst zullen we die zien die te maken hebben met de strategie van informatiesystemen, dan die met betrekking tot softwareontwikkeling.

Hogere informatiekwaliteit

Een datamodel is essentieel om duidelijkheid en consistentie te verschaffen in de metadata , de definities van de objecten waaruit een database bestaat. Dit draagt ​​bij aan het verhogen van de informatiekwaliteit. Een datamodel kan er bijvoorbeeld voor zorgen dat de juiste formaten worden gebruikt voor data-elementen zoals telefoonnummers en postcodes, en in een database waarin klantgegevens worden opgeslagen, kan het ervoor zorgen dat elke klant minimaal één adres heeft.

U kunt de kwaliteit van de informatie die in een database is opgeslagen ook waarborgen door regels op te leggen zodat alleen geldige gegevens in de tabellen komen. Om dit te doen bij het ontwerpen van het gegevensmodel, stelt u het waardedomein in voor elk veld en maakt u onderscheid tussen de velden die waarden moeten hebben en de velden die leeg kunnen worden gelaten.

Definities van gegevensmodellen zorgen ervoor dat gegevens worden nageleefd zakelijke regels. U wilt bijvoorbeeld dat elke klant een adres met het juiste postcodeformaat moet hebben, of dat elk adres moet worden gekoppeld aan een stad en elke stad aan een staat.

De informatiekwaliteit wordt ook verbeterd door beperkingen op te leggen die referentiële integriteit waarborgen en de beoogde kardinaliteit in de relaties tussen entiteiten behouden. Die beperkingen kunnen alleen worden afgeleid uit een goed datamodel.

Hergebruik van gegevensactiva

Bij het ontwikkelen van een nieuw systeem of het toevoegen van nieuwe functionaliteit aan een bestaand systeem, is het gebruikelijk dat sommige van de door de nieuwe ontwikkeling vereiste data-entiteiten al in een database bestaan ​​en daarom opnieuw kunnen worden gebruikt. De enige manier om erachter te komen welke entiteiten al bestaan, is door te bladeren door up-to-date datamodellen die de structuren van de databases die door de organisatie worden gebruikt adequaat beschrijven.

Conceptuele, logische en fysieke gegevensmodellen moeten worden onderhouden om weergaven met verschillende abstractieniveaus te bieden, zodat u herbruikbare gegevensactiva gemakkelijk kunt detecteren. U kunt gebruikmaken van een gespecialiseerde ontwerptool, zoals het Vertabelo-platform, om het maken van verschillende soorten gegevensmodellen te vergemakkelijken en zelfs om van elkaar af te leiden.

Deze goede praktijk vermijdt het genereren van overbodige gegevens in verschillende schema's, wat vroeg of laat tot inconsistente informatie leidt (meer hierover hieronder).

Migratie naar cloudomgevingen

Bij DaaS-infrastructuren (Data as a Service) of databases in de cloud gelden bepaalde vereisten, zoals databaseprivacy , dynamische schaalbaarheid , en efficiëntie bij het beheren van meerdere tenants , kritischer worden.

Gegevensmodellen zijn een hulpmiddel van onschatbare waarde om aan deze vereisten te voldoen, omdat ze het gemakkelijker maken om te verifiëren dat een schemaontwerp hieraan voldoet. Op hun beurt stellen ze u in staat om de partities van de schema's en hun opslagvereisten te definiëren, wat essentieel is om het vereiste serviceniveau en de verwachte opslaggroei goed te dimensioneren wanneer databases zich in privé- of openbare clouds bevinden.

Databaseontwerpartefacten zoals ER-diagrammen zijn de tools bij uitstek bij het voorbereiden van een migratie naar een cloudomgeving. Een handleiding over het gebruik van ER-diagrammen kan u een idee geven van hun nut bij databasemigratie.

Databasemodellering voor Big Data en NoSQL

Niet-relationele databases, zoals NoSQL en dimensionale schema's, kunnen ons dwingen om (althans voor een moment) onze traditionele relationele denkwijze opzij te zetten. Maar dat betekent niet dat we zonder datamodellen kunnen. Integendeel, datamodellering wordt nog belangrijker.

Wanneer u met Big Data moet werken, wordt u vaak geconfronteerd met enorme silo's aan informatie die zo moeten worden opgesplitst, verfijnd en gestructureerd dat u of een data-analist er strategische inzichten uit kan halen. Een zorgvuldig schemaontwerp is vereist, zowel voor verfijnde informatieopslagplaatsen of datawarehouses als voor het opzetten van opslagplaatsen die worden gebruikt voor gegevensopschoning en gegevensstructureringsprocessen.

Er is een misvatting, vooral door programmeurs, dat NoSQL-databases geen schema's gebruiken en daarom geen datamodellen nodig hebben. Niets is minder waar. Aangezien NoSQL-technologieën geen gestandaardiseerde manier bieden om de metadata te bekijken (iets wat elk RDBMS doet), worden datamodellen essentieel om mensen de informatie die in de database is opgeslagen te laten gebruiken en delen.

Fusies en overnames

Elke fusie tussen twee organisaties vormt een gigantische uitdaging voor hun respectievelijke IT-afdelingen. Een belangrijk deel van deze uitdaging zit in databaseconsolidatie. Als beide organisaties beschikken over up-to-date datamodellen, kan deze consolidatie in de modellen worden gedaan in plaats van direct in de databases, waardoor de inspanning die aan de taak wordt besteed aanzienlijk wordt verminderd.

Tot nu toe hebben we de voordelen gezien van datamodellering in verband met strategische IT-planning van een organisatie. Als deze redenen niet genoeg zijn om u te overtuigen van het belang van datamodellering, laten we dan ook eens kijken naar de voordelen die het biedt voor softwareontwikkeling.

Verlaagde ontwikkelingskosten

In de vroege stadia van een ontwikkelingsproject, wanneer het budget wordt geanalyseerd, kan de noodzaak om inspanningen te leveren voor het bouwen van een datamodel in twijfel worden getrokken. Als de projectleiders en managers slim genoeg zijn, vergelijken ze wat het kost om een ​​datamodel te bouwen en te onderhouden met de kosten die bespaard worden en besluiten ze om het model te bouwen.

Datamodellering is slechts 10% van een ontwikkelingsprojectbudget en heeft het potentieel om de werkelijke projectkosten te verlagen tot minder dan een derde.

Denk maar aan het volgende. In de meeste gevallen bedragen de kosten van datamodellering (dat wil zeggen de kosten van de inspanning die nodig is om het model te bouwen en te onderhouden) minder dan 10% van het totale budget voor een softwareproject. Ter vergelijking:de kostenbesparingen die gepaard gaan met het gebruik van datamodellen bedragen tot 70%, allemaal door de vermindering van de uren voor codering en onderhoud.

Dus bij softwareontwikkeling is de eerste en belangrijkste reden om aan datamodellering te doen de onbetwistbare ROI (return on investment), waarmee projectleiders in de vroege stadia van elk project rekening moeten houden.

Betere definities van vereisten

Bij softwareontwikkeling kunt u een beter begrip van het te ontwikkelen systeem garanderen als gegevensmodelleringsactiviteiten parallel met het verzamelen van vereisten worden uitgevoerd. De vereisten zullen vollediger en correcter zijn.

Gegevensmodellering helpt bij het blootleggen van bedrijfsregels en het stellen van vragen tijdens het opstellen van vereisten, terwijl de gegevensintegriteit wordt gewaarborgd. Het is effectiever dan procesmodelleringsactiviteiten zoals use case-ontwerp of workflow-ontwerp, en uiteraard expressiever en minder uitgebreid dan de prozabeschrijving van de bedrijfsregels.

Sneller ontwikkeling

Wanneer ontwikkelaars de juiste datamodellen bij de hand hebben, kunnen ze hun werk doen met minder fouten. Tools voor gegevensmodellering genereren en onderhouden automatisch databaseschema's, waarbij DDL-scripts (Data Definition Language) worden gemaakt die vaak te lang, complex en rommelig zijn voor ontwikkelaars om handmatig te genereren.

Die tools bevorderen op hun beurt de samenwerking doordat ze modellen kunnen delen tussen ontwikkelaars. Als er wijzigingen nodig zijn, kunt u deze in het datamodel aanbrengen, zodat alle ontwikkelaars op de hoogte worden gebracht en dat ze worden toegepast op de databases zonder iets te breken.

Dit alles zorgt ervoor dat de systemen sneller en met minder bugs kunnen worden opgeleverd.

Agile-methodologieën stimuleren

Agile-methodologieën zijn bedoeld om het ontwikkelingsproces te versnellen door de inspanningen te concentreren op het leveren van werkende software en het vermijden van bureaucratie, buitensporige documentatie en achter elkaar uitgevoerde fasen.

Databasemodellering staat voor een grote uitdaging bij het werken in agile omgevingen, aangezien de ontwerper moet kunnen werken aan het "grote geheel", terwijl ontwikkelaars alleen de gegevensobjecten nodig hebben die nodig zijn voor elk gebruikersverhaal. Om een ​​consensus te bereiken tussen datamodelleurs en ontwikkelaars, gebruiken agile methodologieën technieken zoals sandboxing en vertakking .

Een sandbox is de werkomgeving van elke ontwikkelaar. De ontwerper kan werken met de takken van het hoofddatamodel in de sandbox van elke ontwikkelaar, die feedback zal geven om het te verfijnen. Aan het einde van elke fase (of sprint) voegt de databaseontwerper de verschillende branches samen om het volledige model up-to-date te houden.

Je zou kunnen denken dat datamodellering agile teams vertraagt ​​en dat ontwikkelaars moeten wachten tot modellen klaar zijn om met hun werk te beginnen. Maar in werkelijkheid handhaaft het gebruik van technieken zoals sandboxing en branching de principes van behendigheid en bereikt tegelijkertijd de bovengenoemde snelheidsverbeteringen.

Wat als ik geen gegevensmodellen gebruik?

Je zou kunnen denken dat je nog steeds kunt overleven zonder de voordelen van datamodellen die tot nu toe zijn genoemd om tijd te besparen. Maar als u afziet van gegevensmodellering, loopt u het risico op ernstige problemen te komen, zoals:

  • Onnodige redundantie:aangezien er geen model is om de data-objecten duidelijk te zien, zullen verschillende versies van dezelfde objecten verschijnen met verschillende informatie. Een voorraadsysteem kan bijvoorbeeld melden dat er in de afgelopen maand 500 eenheden van een artikel zijn verkocht, terwijl een logistiek systeem kan melden dat er in dezelfde periode 1000 eenheden van hetzelfde artikel zijn verzonden. Welke is goed? Wie weet.
  • Trage apps:de afwezigheid van een datamodel maakt optimalisatietaken moeilijk, wat de responsiviteit van de applicaties vermindert.
  • Onvermogen om aan kwaliteitsnormen te voldoen:als er geen gegevensmodel is, worden uw databases niet gedocumenteerd, wat verplicht is in scenario's zoals databasemigraties.
  • Slechte softwarekwaliteit:de softwareontwikkelingsvereisten zullen slecht zijn en gebruikers zullen niet de applicaties hebben die ze nodig hebben of wensen.
  • Hogere ontwikkelingskosten:ik noemde al de aanzienlijke kostenbesparingen die in een ontwikkelingsproject kunnen worden bereikt door gebruik te maken van datamodellen. Als u ervoor kiest om ze niet te gebruiken, moet u beslissen wie de extra ontwikkel- en onderhoudskosten betaalt. En wie zal excuses verzinnen als de deadlines niet worden gehaald.

Nog steeds niet overtuigd?

Als wat je tot nu toe hebt gelezen niet genoeg is om je te overtuigen van het belang van datamodellering, onthoud dan dat data een steeds waardevoller bezit wordt voor allerlei soorten organisaties. Het modelleren van de structuren om te profiteren van informatie is tegenwoordig ongekend relevant.

Denk hier eens over na:tijdens de goudkoorts waren de jongens die het meeste geld verdienden niet degenen die naar goudklompjes groeven, maar eerder degenen die het gereedschap leverden om het goud te winnen. In 2021 komen goudklompjes in de vorm van inzichtelijke informatie, en de mijnwerkers die dergelijk kostbaar materiaal winnen, moeten worden voorzien van datamodellen.


  1. hoe globale variabele declareren in SQL Server ..?

  2. SQL AVG() voor beginners

  3. Hoe kan sanitaire voorzieningen die ontsnappen aan enkele aanhalingstekens worden verslagen door SQL-injectie in SQL Server?

  4. Som kolommen met null-waarden in orakel