Databaseontwerp is een sequentieel proces van het aanpassen van beschikbare kennis en hulpmiddelen om informatie weer te geven en te verwerken.
De werkelijke reikwijdte, de specifieke taak, de beschrijving van de inkomende informatiestroom en algemene ideeën over het informatieverwerkingsproces worden geleidelijk opgeteld tot een bepaald conceptueel idee van wat een database in een bepaald geval is en hoe om ermee te werken.
Moderne database
Relationele relaties vormen de kern van elk informatiemodel. Oplossingen van Oracle zijn in wezen gelijk aan MySQL, maar zijn in veel opzichten fundamenteel verschillend. Databaseontwerp is ook een kwestie van beveiliging, hoeveelheid informatie en verantwoordelijkheid voor gegevensintegriteit, maar deze zijn ondergeschikt aan het ontwerp van een efficiënte, betrouwbare en gebruiksvriendelijke database.
Excel-tabellen verschillen niet van Oracle en MySQL in de context van rechthoekige (relationele) structuren: kolommen en rijen=één cel op het snijpunt van de kolomnaam (veld) en selectie-index (rij). Als je geen rekening houdt met de hoeveelheid en de hoeveelheid handarbeid, dan is Excel, dankzij de ontwikkelde manier om cellen verticaal en horizontaal te combineren, zelfs Oracle voor!
Excel, volgens zijn basisidee, "schijnt" nooit de dynamiek, de functionaliteit van Oracle, en het kan niet iets van het ene blad naar het andere overbrengen "volgens de overblijfselen". Oracle is hier veelbelovender, maar zijn overwegingen over de kwestie van het migreren van grote hoeveelheden informatie en het combineren van geformaliseerde posities uit verschillende bronnen laten veel te wensen over. Hier is MySQL veelbelovender: het stelt zichzelf geen globale taken, maar het doet zijn werk perfect.
Relationele relaties zijn handige, praktische en gevestigde hulpmiddelen, van privéoplossingen op Excel-niveau tot wereldwijde Oracle-volumes, worden overal gebruikt, worden veel gevraagd en hebben een gegarandeerde baan in de toekomst.
Een moderne database bestaat uit tabellen, rijen, kolommen en indexen omgeven door volledige functionaliteit, aanvullende tools ontwikkeld die rekening houden met meerdere bewerkingen, zware belastingen en enorme volumes.
Kennis en ervaring van moderne databasebeheersystemen (DBMS) houden niet alleen rekening met kwesties als betrouwbaarheid, gegevensbetrouwbaarheid, toegangsregulering en beveiligingskwesties, maar maken het ook mogelijk om negatieve externe invloeden op te sporen, mogelijke aanvallen te analyserenen probeert opzettelijk schade te berokkenen.
Een moderne database is een betrouwbare basis voor elke webresource en lokale applicatie, de mogelijkheid om informatie te migreren, gegevens te transformeren en over te dragen, verschillende weergaven te kruisen en te combineren.
De enige essentiële voorwaarde: hooggekwalificeerde ontwikkelaar. Het effectief ontwerpen van relationele databases is beschikbaar voor een specialist, en vaker voor een team van specialisten en experts op het gebied van toepassing van het probleem dat wordt opgelost.
Omvang, mogelijke oplossing en obstakels
Informatie circuleert overal. Veel projecten zijn direct verbonden met internet, maar de factor van het hebben van een formele gegevensweergave is hier niet beter dan de onzekerheidsfactor bij het maken van een webbron voor een staalfabriek.
De ontwikkeling en enorme belangstelling voor online winkels biedt geen grond en mogelijkheden om de ervaring van het creëren van de ene winkel over te brengen op het creëren van een andere. De factor handelsgeheim zorgt voor veel obstakels voor de overdracht van kennis, hoewel u in feite de eigenlijke winkel moet scheiden van de softwaretools die voor deze winkel zijn gemaakt.
Natuurlijk heeft de klant betaald en is de sitecode zijn eigendom. Kenmerkend voor moderniteit: de overdracht van kennis en ontwikkelingen tussen taken van hetzelfde type en gerelateerde toepassingsgebieden is onmogelijk en dit is een probleem.
Parsing is een breed scala aan toepassingen voor databasebeheersystemen. Allereerst scant het informatie van internet. Het is net zo belangrijk om de informatie die is verzameld indatabase en verzoeken van webbezoekers.
Trefwoordanalyse houdt ook de noodzaak in om een optimale oplossing te vormen, maar databaseontwerp op Access kan veelbelovender zijn dan op MS SQL Server of Oracle.
De lijst met informatiebronnen kan dynamisch zijn. Dynamiek kan inherent zijn aan brondatabasetabellen, tabelveldnamen en aanroepregels (query's). Het ontwerpen van relationele databases uit meerdere bronnen dwingt je duidelijk om te ontwerpen vanuit de brongegevens, en niet vanuit de optimale organisatie van de verzamelde informatie.
Er zijn twee dingen die inherent zijn aan elke database:
- oriëntatie op inhoud, dynamisch algoritme voor het genereren van databases met prioriteit;
- oriëntatie om te gebruiken, de structuur van de database is belangrijker en het algoritme voor het gebruik van informatie is erop gebaseerd.
In elk toepassingsgebied is er een formeel model van de inkomende informatiestroom, een informatieopslagmodel - het eigenlijke ontwerp van de database en een model (algoritme) voor het gebruik van gegevens.
Verschillende procedures en ontwerpstappen
De basisprincipes van databaseontwerp vallen meestal in drie fasen. Verschillende specialisten verwijzen op verschillende manieren naar de werkfasen, maar in feite zijn er drie posities:
- conceptuele planning;
- logisch ontwerp;
- technische uitvoering.
De praktijk draagt bij aan gevestigde tradities. Hoe complex de scope en het probleem ook is. Het duurt altijd om de juiste te kiezengereedschap. U moet bijvoorbeeld informatie van bezoekers van een webbron verzamelen, maar u moet deze vergelijken met gegevens uit MS SQL Server. De webbron wordt gehost op FreeBSD (Internet, Apache-server) en MS SQL Server in een andere stad is beschikbaar via het gedistribueerde netwerk van het bedrijf.
Bij deze oplossing moet u eerst een bepaald probleem oplossen: gegevensuitwisseling met de interne server tot stand brengen.
De technische uitvoering van een gemeenschappelijke taak zal noodzakelijkerwijs een impact hebben op de beginfase: het komt zelden voor dat databaseontwerp helemaal opnieuw kan worden gedaan. Zelfs met bewezen technologie voor het oplossen van problemen, evolueert de reikwijdte, het is altijd nodig om iets anders te doen dan oorspronkelijk de bedoeling was.
De laatste tijd werken veel theoretici en beoefenaars met entiteiten als speciale gegevens. Dit zijn abstracties waarmee u het informatiemodel kunt beschrijven bij de invoer, tijdens de verwerking en in het eindresultaat - de database.
Gegevens- en entiteitsweergaven
DB-ontwerp door middel van abstracties en entiteiten: de mogelijkheid om een informatiebeeld te creëren, gegevenstypen en relaties daartussen te definiëren.
Normaal gesproken eindigt een dergelijk ontwerp van een databasemodel met een grafisch model, waarbij gebruik wordt gemaakt van MS Visio of visuele hulpmiddelen van het gekozen DBMS. Access heeft zijn eigen manier om een informatiebeeld te vormen, MySQL heeft zijn eigen, en sommige contentmanagementsystemen verbergen de database helemaal en leggen een datamodel op aan de ontwikkelaar via hun eigen entiteiten -objecten van de taak die wordt opgelost.
Een kenmerkend kenmerk van veel contentmanagementsystemen (CMS) is dat ze een "toepassing" maken voor een hoger abstractieniveau bij het beschrijven van het informatiegebied van het probleem dat wordt opgelost. De echte database is verborgen, CMS biedt de ontwikkelaar zijn eigen idee van het informatiebeeld van de wereld.
Als gevolg hiervan worden de stadia van het databaseontwerp teruggebracht tot het naleven van de fundamentele vereisten en het uitvoeren van de stappen die worden voorgesteld door de makers van een bepaald CMS. Het is niets schandelijks om de ideeën van databases en hun ontwerp van Symfony of Bitrix, Zend of Yii te gebruiken, maar voor de ontwikkelaar is het een "last".
Idealiter zouden database-ontwerptools individueel moeten worden geselecteerd en toegepast, zonder mening van buitenaf, maar met de toepassing van ervaring en kennis.
Ideaal voor een ontwikkelaar om te worden gecertificeerd door Oracle, maar volkomen acceptabel voor de kwalificaties van een ontwikkelaar om inzicht te hebben in de informatie-ideeën van Oracle en praktische kennis van MySQL-applicaties.
Bij complexe projecten en gedistribueerde informatieverwerking is niet alleen de database belangrijk, maar ook de informatiebronnen, ideeën over de behoeften van consumenten.
Stadia of team: balans van prioriteiten
De eis van consistentie is van het meest directe belang. De basisprincipes van databaseontwerp omvatten ook fasering van het werk, monitoring van tussentijdse resultaten, heroverweging van elke voltooide fase op basis van de uitvoering van het volgende type werk:
- systematisch;
- fasering;
- feedback vanaf elk moment in de tijd, tot de allereerste startpositie.
Deze bepalingen zijn abstract, maar aanwezig in elke theoretische en praktische technologie voor het creëren van een effectieve database.
Geen enkele technologie ontwikkelt zich vanzelf, ze wordt aangestuurd door mensen. De kwalificaties van het ontwikkelteam zijn essentieel. Het database-informatiemodel is niet alleen een raamwerk, maar ook informatiestromen.
Wat belangrijker is: mooie grafische afbeeldingen in de weergave van de databasestructuur of een nauwkeurige beschrijving van informatiestromen in dynamiek - niet alleen een kwestie van de taak en reikwijdte, maar ook de mening van het ontwikkelteam in dynamiek.
Personeel is alles, maar in context: het conceptuele ontwerp van een database is alles kwalificatie. Alle mensen zijn uniek en op het gebied van informatiesystemen bestaan en ontwikkelen zich representaties van specifieke mensen.
Het is belangrijk om een team van ontwikkelaars op te bouwen, niet een aantal mythische stappen voor het ontwerpen van een database die worden voorgesteld door een gezaghebbende expert. De autoriteit van deze specialist werd gevormd op basis van specifieke werken, op een bepaald moment. Er moet vandaag gewerkt worden, nieuwe taak, moderne apparatuur, nieuwe technologie, …
Mogelijk omgekeerd. Er is Excel en Access en "overvloedige" gegevens in deze formaten uit de oudheid, toen Windows for Workgoups nog leefde. Gedeeltelijk bleven dBase- en Quattro-gegevens. Vandaag zijn deze woorden al vergeten, maar de informatiebleef, er is veel vraag naar en moet worden geëxtraheerd en nieuwe ideeën gevormd.
Oud en nieuw: kennisbalans
Cloud-technologie is niet zoals de databases die Ashton-Tate deed. Wat Oracle ooit kocht, is op geen enkele manier te vergelijken met wat het nu doet. Maar variabelen, algoritmen, functies, lussen en voorwaarden zijn sinds die vroege jaren 80 in de programmering gebleven. Tenzij het concept van de procedure in de vergetelheid is geraakt en alles blijft zoals het was in de oudheid.
Zelfs moderne ideeën over objectgeoriënteerd programmeren zijn gekleed in de klassieke syntactische en semantische "boeien" van de vorige eeuw.
Wat te doen - programmeren is traag, en het formaliseren van informatie en het ontwerpen van informatiedatabases is meer een proces dan een resultaat. Gefaseerd werken is een voorwaarde voor het behalen van resultaat. Maar wie telde het aantal iteraties van tussenstadia bijna tot aan het begin van het werk?
Informatie is altijd dynamisch, niets staat stil: vooral het onderwerp van de taak en gebruikersvereisten. Elke voltooide werkfase stelt u in staat om op een nieuw niveau te evalueren wat al is gedaan en wat nog moet worden gedaan.
Het is zinloos om het ontwerpen van een databasestructuur als een taak te beschouwen en het uiteindelijke resultaat te krijgen. Zodra de database in gebruik wordt genomen, zal er zeker een nieuw idee verschijnen, zelfs als de tool voor het maken van de database "eenvoudige" Excel was, en niet een fantastisch krachtig en veelzijdig product van Oracle,het manipuleren van miljoenen transacties, honderdduizenden gelijktijdige gebruikers en terabytes aan informatie.
De prioriteit is niet de structuur van de database, maar de vorming van een gekwalificeerd team van specialisten, plus de verplichte vereiste voor een grotere dynamiek van het resultaat, zodat het na voltooiing van het werk niet nodig is om contact op te nemen de ontwikkelaars, minstens een paar maanden.
Sequentiële ontwikkeling en/of hoge sprongen
Windows is geen database, maar het heeft een relikwie - het register. Het hosts-bestand is gewoon een identificatie van de IP-adressen en symbolische namen van de lokale machine. Maar door dit bestand worden informatiestromen van verschillende domeinen of naar verschillende DBMS'en gevormd.
Het is mogelijk om de veelzijdige Windows te begrijpen als een werkende computer of server, maar het zal op geen enkele manier werken om de logica van de versies van dit product te rechtvaardigen. PHP is ook geen database, maar de argumenten van de ontwikkelaars waarom versie 5 onmiddellijk op versie 7 volgt, zijn inconsistent. PHP is een MySQL-toegangstool, de syntaxis definieert hoe query's moeten worden gevormd en antwoorden uit de database moeten worden gehaald met behulp van het SQL-dialect.
Voorbeelden van incompatibiliteit tussen moderne programmeertools en databaseondersteuning zijn de laatste jaren de norm geworden, maar dit is niet de meest originele. Wat zit er achter de versie van Windows 10? Wat zijn de vooruitzichten voor Oracle Database 12c?
Informatie van de ontwikkelaar-auteur: Oracle Database 11g Express Edition (Oracle Database XE) is een DBMS op instapniveau gebaseerd op de Oracle Database 11g Release 2 DBMS-code. Dit DBMS is gratis voor ontwikkeling,implementatie en verkoop, snelle download en eenvoudig te beheren.”
Het perspectief van een gebruikerontwikkelaar: "In 2013 bracht Oracle Oracle Database 12c (versie 12.1.0.1) uit met als belangrijkste voordelen lagere opslagkosten, hoge gegevensbeschikbaarheid, eenvoudige databaseconsolidatie en bescherming van gegevenstoegang "".
Real Practice: Een objectief, efficiënt en effectief logisch databaseontwerp is alleen beschikbaar voor een team van gekwalificeerde ontwikkelaars. Een werkend resultaat krijgen is niet moeilijk, het is moeilijk om de inkomende informatiestromen te formaliseren en de optimale basis te bepalen.
Naar de wereld van vloeiende vormen van precieze rechthoeken
Met de komst van objectgeoriënteerd programmeren heeft dataserialisatie een nieuw leven gekregen. Inderdaad, alles eromheen is slechts lijnen, bij voorkeur van onbepaalde lengte. Getallen en datums zijn ook tekenreeksen.
De kracht en objectiviteit van relationele relaties v alt niet te ontkennen, maar schaadt de dynamiek van kolommen en rijen hun reputatie? Een tabel is eenvoudigweg gegevens die een koptekst (een lijst met kolommen) of geen rijen kunnen hebben. Laat de tabel slechts een verzameling gegevens zijn, niet noodzakelijk een naam.
De set gegevens kan heterogeen zijn en je kunt er gegevens met een verschillende structuur in vinden. In wezen geeft de homogeniteit van de gegevens de ontwikkeling van de reikwijdte aan. De verdeling van gegevens naar typen en soorten is een teken van een systematische en objectieve benadering, maar het is toch raadzaam om de mogelijkheid van structuurdynamiek toe te laten.
Als uitvoerhet ontwerpen en creëren van een database die verder gaat dan rigide structuren en ervan uitgaat dat een tabel een verzameling rijen is die niet noodzakelijk van hetzelfde type zijn en qua semantiek vergelijkbaar zijn, dan zal het databaseontwerp drastisch veranderen.
Het onderwerp van het werk is niet een beschrijving van de databasestructuur, maar de dynamiek van de beweging van informatie. De werkfasen zullen worden verdeeld in drie zwaartepunten:
- invoer informatiestroom;
- transformatie en verplaatsing van informatie binnen de database;
- selecteer gegevens om te gebruiken.
Er is geen concept van tafelstructuur. Er zijn geen rijen of kolommen. Er is een abstractie - een gegeven, van een bepaalde structuur, dat voldoet aan een specifiek punt in het algoritme. Meer specifiek vereist de informatieverwerkingsfunctie bepaalde informatie in een bepaalde hoeveelheid.
De verplichte eis van recursiviteit van alle informatieverwerkingsfuncties en focus op functies, niet op gegevens, stelt u in staat een database te ontwerpen in de dynamiek van de verzamelde informatie en inkomende gegevensstroom, die op initiatief van de gebruiker worden gebruikt, proces of andere functie.
In feite: er kwam een gebruikssignaal, er werd een ophaalverzoek ontvangen, een trigger in de applicatie werd geactiveerd en de binnenkomende informatie, via wat er al was, zorgde voor de gewenste oplossing.
Fundamentele kennis en rigide constructies
Kennis is het voorrecht van de mens, programma's zijn de last van computers. De ontwikkelaar is vrij om kennis in een bepaalde situatie naar eigen goeddunken toe te passen. Een gewoon mens gebruikt veel databases, zonder er belang aan te hechten. hoedatabases zijn georganiseerd in het hoofd van een gewoon persoon, niemand weet het, maar iedereen weet hoe hij zijn zaken doet, waar hij opschrijft wat hij vindt en wanneer hij het moet gebruiken.
Het resultaat van het werk van de programmeur - op het niveau van een programma in "Basic", dat gegevens opha alt van de website van een online winkel via ODBC, is gelijk aan een met een adellijke titel Oracle-ontwikkelaar die een verzoek doet om gegevens op te halen van de MAKS Aviation and Space Salon. Beide resultaten "bevriezen" statisch vanaf het moment dat het werk is voltooid. Dit is geen actieve kennis die een persoon gebruikt, dit is het geheim van het creëren van een databaseontwerpsysteem.
Het algoritme kan niet worden hersteld. Alles moet dynamisch worden gedefinieerd. De verdiensten van gekwalificeerde ontwikkelaars zijn onmiskenbaar, maar ze liggen helemaal niet in de elegante vormen van oplossingen van Oracle, MySQL of Access, die beperkt zijn in zijn mogelijkheden. Een ander Excel-spreadsheet kan dynamische inhoud bieden en vereist geen deelname van een programmeur voor min of meer behoorlijke tijd na voltooiing van het werk.
De vraag is hoe goed de dynamiek van het toepassingsgebied is geformaliseerd, niet de structuur van de database.
Live-oplossingen
Het is onmogelijk om het werk zo te plannen dat een team van professionele ontwikkelaars aan een taak wordt gebonden. Niet dat het team beledigd was, maar dit is niet de juiste aanpak.
De taak van het ontwerpen van een database moet zo worden geformuleerd dat de ontwikkelde functionaliteit zichzelf zou verbeteren, kennis zou vergaren en, bij het uitvoeren van zijn "taken", niet zou uitgaan van de code,gemaakt door experts, maar van de kennis die door deze code is verkregen.