sql >> Database >  >> RDS >> Database

Database-ontwerp

Ik beoefen al zo'n twintig jaar agile databasetechnieken. Mijn gebruik van deze technieken begon niet als een vast plan; het evolueerde eerder in de loop van de tijd terwijl ik over verschillende projecten adviseerde. Het was logisch om te zoeken naar manieren om sneller en met meer klantinteractie te werken.

Ik kan minstens drie soorten agile databasetechnieken bedenken:

  • Gegevensmodellering
  • Datawarehouse-ontwikkeling
  • Database reverse-engineering

Agile gegevensmodellering

Velen beschouwen datamodellering als een moeizame taak. Maar dat hoeft niet zo te zijn. U kunt datamodellering uit de achterkamer halen en het voor een klant doen. Je zou denken dat klanten zouden worden afgeschrikt door de technische gore, maar dat is niet zo. Bedrijfsmedewerkers hebben passie voor hun werk en een visie op waar ze naartoe willen. Ze zijn dolblij dat IT een faciliterende factor is in plaats van een wegversperring.

Voor agile datamodellering moet een ontwikkelaar het volgende doen:

  • Vloeiend zijn met concepten voor gegevensmodellering en een hulpmiddel voor gegevensmodellering.
  • Zorg voor een vriendelijk publiek voor de eerste paar keer. Je moet je technieken uitproberen op een verzorgend publiek totdat je meer zelfvertrouwen krijgt.
  • Zorg dat er ten minste één zakelijke kampioen in het publiek zit:iemand die de resultaten van uw werk ontvangt, iemand die het bedrijf diep begrijpt en anderen zal helpen om tot consensus te komen.
  • Een solide project hebben met een duidelijk doel en zakelijke rechtvaardiging.

Met agile datamodellering werken ontwikkelaars snel en leveren ze frequente modelrevisies. Ik heb liever dat datamodelleringssessies niet langer dan twee uur duren. Deze sessies zijn intens, waarbij iedereen rond ideeën draait. Na twee uur hebben de deelnemers rust nodig. Je hebt ook tijd nodig om het model op te ruimen en documentatie bij te werken.

Agile-technieken zijn van toepassing op alle facetten van datamodellering, inclusief dagelijkse operationele systemen, datawarehouses, masterdatamodellen en enterprise datamodellen.

Agile datawarehouse-ontwikkelingstechnieken

Agile technieken zijn ook belangrijk als je een datawarehouse bouwt. Er zijn met name twee gebieden waarop we deze technieken hebben toegepast op de ontwikkeling van magazijnen.

De eerste is data-staging . Het is een goede gewoonte om tussenliggende faseringstabellen te gebruiken om het eigenlijke magazijn te bufferen van de operationele bronnen. Staging-tabellen dupliceren operationele gegevens en voegen metagegevens toe, zoals het bronsysteem, de verwerkingsdatum, de effectieve tijdstempel en de vervaltijdstempel. Momenteel verwerken de meeste ontwikkelaars staginggegevens met aangepaste ETL-code. (ETL is een acroniem voor Extract, Transform, and Load.) Er is ten minste één tool (A2B-gegevens) die het maken en vullen van staging-tabelschema's automatiseert.

We gebruiken ook agile technieken om de verwerking van magazijngegevens te verbeteren . Hiervoor geven we de voorkeur aan een mix van ETL en SQL. ETL wordt gebruikt voor kerntabellen met complexe logica, terwijl SQL wordt gebruikt voor perifere tabellen - en daar zijn er veel van in een typisch magazijn. Het is ongeveer 10 keer sneller om SQL te schrijven dan ETL. De SQL-code is ook gemakkelijker te ontwikkelen en te testen. Je kunt redelijkerwijs verwachten dat je ETL voor ongeveer de helft van de tabellen vervangt door SQL; het exacte bedrag hangt af van de complexiteit van het magazijn en uw SQL-vaardigheid.

Deze verbeteringen verminderen de hoeveelheid ETL-code die moet worden geschreven, terwijl deze wordt ingezet waar deze het meest waardevol is:voor grote datasets met meerdere bronnen om te integreren en te verwerken.

Behendigheid in database reverse engineering

Ook tijdens reverse engineering maken we gebruik van agile technieken. Reverse engineering neemt een bestaand ontwerp en werkt achteruit om de onderliggende logische bedoeling af te leiden. Reverse engineering van databases kan verschillende redenen hebben. Mogelijk converteert u van het ene databaseplatform naar het andere. Of misschien probeert u het model beter te begrijpen voor onderhoudsdoeleinden. Of misschien probeert u vereisten te redden die impliciet in een schema staan, zodat deze door nieuwe software kunnen worden overwogen.

Meestal beginnen we met het analyseren van het bestaande schema. Een schema is vaak beschikbaar en het is iets dat we snel kunnen bestuderen. We kunnen dit aanvullen met andere bronnen, zoals documentatie, gegevens en gesprekken met ontwikkelaars.

Een hulpmiddel voor gegevensmodellering is een belangrijke bron voor het bestuderen van het schema. De meeste hulpprogramma's kunnen het SQL-schema importeren, zodat u de tabellen kunt zien en hoe ze met elkaar in verbinding staan. Vaak is dat voldoende voor reverse engineering-analyse.

Agile databasetechnieken:de afhaalmaaltijd

Agile ontwikkeling is een populair onderwerp dat verschillende implicaties voor databases heeft. Een flexibele benadering is handig voor datamodellering, datawarehouse-ontwikkeling en reverse engineering van databases.

Michael Blaha is een adviseur en trainer die gespecialiseerd is in het bedenken, ontwerpen, modelleren, ontwerpen en afstemmen van databases. Hij heeft met tientallen organisaties over de hele wereld gewerkt. Dr. Blaha is auteur van zeven Amerikaanse patenten, zeven boeken, veel artikelen en twee videocursussen. Zijn meest recente publicatie is het Agile Data Warehouse Design videocursus van O'Reilly. Hij behaalde zijn doctoraat aan de Washington University in St. Louis en is een alumnus van GE Global Research in Schenectady, New York. Je kunt meer informatie vinden op zijn LinkedIn-profiel of op superdataguy.com.



  1. MySQL-gebruikersmachtigingen

  2. Hoe voortschrijdend gemiddelde in roodverschuiving te berekenen

  3. MIN() – Zoek de minimumwaarde in een kolom in MySQL

  4. Hoe u de huidige tijd in SQLite kunt krijgen