Jeg har praktiseret agile databaseteknikker i omkring tyve år nu. Min brug af disse teknikker startede ikke som en fast plan; snarere udviklede det sig over tid, efterhånden som jeg rådførte mig om forskellige projekter. Det gav mening at lede efter måder at arbejde hurtigere og med større kundeinteraktion.
Jeg kan komme i tanke om mindst tre slags agile databaseteknikker:
- Datamodellering
- Udvikling af datavarehus
- Reverse engineering i databasen
Agil datamodellering
Mange tænker på datamodellering som en besværlig opgave. Men det behøver ikke at være tilfældet. Du kan tage datamodellering ud af baglokalet og gøre det foran en kunde. Du tror måske, at kunderne ville blive afskrækket af den tekniske elendighed, men det er de ikke. Virksomhedsmedarbejdere har en passion for deres arbejde og en vision om, hvor de vil hen. De er begejstrede for at have IT som en facilitator i stedet for en vejspærring.
For agil datamodellering skal en udvikler gøre følgende:
- Vær flydende med datamodelleringskoncepter og et datamodelleringsværktøj.
- Få dig selv et venligt publikum de første par gange. Du skal prøve dine teknikker på et plejende publikum, indtil du får selvtillid.
- Har mindst én forretningsforkæmper blandt publikum – nogen til at modtage output fra dit arbejde, en som forstår forretningen dybt og vil hjælpe med at drive andre til konsensus.
- Har et solidt projekt med et klart mål og forretningsmæssig begrundelse.
Med agil datamodellering arbejder udviklere hurtigt og leverer hyppige modelrevisioner. Jeg foretrækker at have datamodelleringssessioner, der ikke varer mere end to timer. Disse sessioner er intense, hvor alle kæmper om ideer. Efter to timer har deltagerne brug for et hvil. Du skal også bruge tid til at rydde op i modellen og indhente dokumentationen.
Agile teknikker gælder for alle facetter af datamodellering, inklusive daglige driftssystemer, datavarehuse, masterdatamodeller og virksomhedsdatamodeller.
Agile datavarehusudviklingsteknikker
Agile teknikker er også vigtige, når du bygger et datavarehus. Specifikt er der to områder, hvor vi har anvendt disse teknikker til lagerudvikling.
Den første er dataopsamling . Det er en god praksis at bruge mellemliggende staging-tabeller til at buffere det korrekte lager fra de operationelle kilder. Iscenesættelsestabeller duplikerer driftsdata og tilføjer metadata såsom kildesystem, behandlingsdato, effektivt tidsstempel og udløbstidsstempel. I øjeblikket behandler de fleste udviklere iscenesættelsesdata med tilpasset ETL-kode. (ETL er et akronym for Extract, Transform og Load.) Der er mindst ét værktøj (A2B-data), der automatiserer oprettelsen og populationen af iscenesættelsestabelskemaer.
Vi bruger også agile teknikker til at forbedre varehusdatabehandling . Til dette foretrækker vi en blanding af ETL og SQL. ETL bruges til kernetabeller med kompleks logik, mens SQL bruges til perifere tabeller - og der er mange af dem i et typisk lager. Det er cirka 10 gange hurtigere at skrive SQL end ETL. SQL-koden er også lettere at udvikle og teste. Med rimelighed kan du forvente at erstatte ETL med SQL for omkring halvdelen af tabellerne; det nøjagtige beløb afhænger af lagerkompleksets kompleksitet og dine SQL-færdigheder.
Disse forbedringer reducerer mængden af ETL-kode, der skal skrives, mens den implementeres, hvor det er mest værdifuldt:for store datasæt med flere kilder at integrere og behandle.
Agility i Database Reverse Engineering
Vi bruger også agile teknikker under reverse engineering. Reverse engineering tager et eksisterende design og arbejder baglæns for at udlede den underliggende logiske hensigt. Database reverse engineering kan have forskellige motivationer. Du konverterer muligvis fra en databaseplatform til en anden. Eller du forsøger måske at forstå modellen bedre til vedligeholdelsesformål. Eller du forsøger måske at redde krav implicit i et skema til overvejelse af ny software.
Vi starter normalt med at analysere det eksisterende skema. Et skema er ofte tilgængeligt, og det er noget, vi hurtigt kan studere. Vi kan udvide dette med andre ressourcer, såsom dokumentation, data og udviklersamtaler.
Et datamodelleringsværktøj er en vigtig ressource til at studere skemaet. De fleste værktøjer kan importere SQL-skemaet, så du kan se tabellerne, og hvordan de forbindes. Ofte er det tilstrækkeligt til reverse engineering-analyse.
Agile databaseteknikker:The Takeaway
Agil udvikling er et populært emne, der har flere databaseimplikationer. En agil tilgang er nyttig til datamodellering, udvikling af datavarehuse og databasereverse engineering.
Michael Blaha er en konsulent og underviser, der har specialiseret sig i udformning, arkitektur, modellering, design og tuning af databaser. Han har arbejdet med snesevis af organisationer rundt om i verden. Dr. Blaha har skrevet syv amerikanske patenter, syv bøger, mange artikler og to videokurser. Hans seneste udgivelse er Agile Data Warehouse Design videokursus fra O'Reilly. Han modtog sin doktorgrad fra Washington University i St. Louis og er alumnus fra GE Global Research i Schenectady, New York. Du kan finde mere information på hans LinkedIn-profil eller på superdataguy.com.