Databasisontwerp: stappe en basiese beginsels

INHOUDSOPGAWE:

Databasisontwerp: stappe en basiese beginsels
Databasisontwerp: stappe en basiese beginsels
Anonim

Databasisontwerp is 'n opeenvolgende proses om beskikbare kennis en gereedskap aan te pas om inligting voor te stel en te verwerk.

Die werklike omvang, die spesifieke taak, die beskrywing van die inkomende inligtingvloei en algemene idees oor die inligtingverwerkingsproses word geleidelik opgetel tot 'n sekere konseptuele idee van wat 'n databasis in 'n bepaalde geval is en hoe om daarmee te werk.

Moderne databasis

Verhoudingsverhoudings is die kern van enige inligtingsmodel. Oplossings van Oracle is in wese gelykstaande aan MySQL, maar hulle verskil fundamenteel in baie aspekte. Databasisontwerp is ook 'n kwessie van sekuriteit, volume inligting en aanspreeklikheid vir data-integriteit, maar dit is sekondêr tot die kwessie van die ontwerp van 'n doeltreffende, betroubare en gebruikersvriendelike databasis.

databasis ontwerp stappe
databasis ontwerp stappe

Excel-tabelle verskil nie van Oracle en MySQL in die konteks van reghoekige (relasionele) strukture nie: kolomme en rye=een sel by die kruising van die kolomnaam (veld) en seleksie-indeks (ry). As jy nie die mate en hoeveelheid handearbeid in ag neem nie, dan is Excel, danksy die ontwikkelde maniere om selle vertikaal en horisontaal te kombineer, voor selfs Oracle!

Excel, volgens sy basiese idee, "skyn" nooit die dinamika, die funksionaliteit van Oracle nie, en dit kan nie iets van een vel na 'n ander oordra "volgens die oorblyfsels". Hier is Oracle meer belowend, maar sy oorwegings oor die kwessies van die migrasie van groot hoeveelhede inligting en die kombinasie van geformaliseerde posisies uit verskeie bronne laat veel te wense oor. Hier is MySQL meer belowend: dit stel nie vir homself globale take op nie, maar dit doen sy werk perfek.

Verhoudingsverhoudings is gerieflike, praktiese en goed gevestigde nutsmiddels, van private Excel-vlak oplossings tot Oracle globale volumes, word oral gebruik, in aanvraag en hulle het 'n gewaarborgde werkverskaffde toekoms.

'n Moderne databasis is tabelle, rye, kolomme en indekse omring deur volle funksionaliteit, ontwikkel bykomende nutsgoed wat veelvuldige bewerkings, swaar vragte en groot volumes in ag neem.

Kennis en ervaring van moderne databasisbestuurstelsels (DBBS) neem nie net die kwessies van betroubaarheid, databetroubaarheid, toegangsregulering en sekuriteitskwessies in ag nie, maar maak dit ook moontlik om negatiewe eksterne invloede op te spoor, moontlike aanvalle te ontleeden probeer om doelbewus skade aan te doen.

'n Moderne databasis is 'n betroubare grondslag vir enige webhulpbron en plaaslike toepassing, die vermoë om inligting te migreer, data te transformeer en oor te dra, verskillende aansigte te sny en te kombineer.

Die enigste noodsaaklike voorwaarde: hoogs gekwalifiseerde ontwikkelaar. Om effektiewe ontwerp van relasionele databasisse uit te voer is beskikbaar vir 'n spesialis, en meer dikwels aan 'n span spesialiste en kundiges op die gebied van toepassing van die probleem wat opgelos word.

Omvang, moontlike oplossing en struikelblokke

Inligting sirkuleer oral. Baie projekte is direk aan die internet gekoppel, maar die faktor om 'n formele data-voorstelling hier te hê, is niks beter as die onsekerheidsfaktor wanneer 'n webhulpbron vir 'n staalaanleg geskep word nie.

Die ontwikkeling en massiewe belangstelling in aanlynwinkels bied nie gronde en geleenthede om die ervaring van die skep van een winkel na die skep van 'n ander oor te dra nie. Die handelsgeheime faktor skep baie struikelblokke vir die oordrag van kennis, alhoewel jy in werklikheid die werklike winkel moet skei van die sagteware-nutsgoed wat vir hierdie winkel geskep is.

relasionele databasis ontwerp
relasionele databasis ontwerp

Natuurlik het die kliënt betaal en die werfkode is sy eiendom. 'n Kenmerkende kenmerk van moderniteit: die oordrag van kennis en ontwikkelings tussen take van dieselfde tipe en verwante toepassingsvelde is onmoontlik en dit is 'n probleem.

Parsing is 'n wye reeks toepassings vir databasisbestuurstelsels. In die eerste plek is dit om inligting van die internet af te skandeer. Dit is ewe belangrik om die inligting wat opgehoop word te vergelykdatabasis- en webbesoekerversoeke.

Sleutelwoordanalise behels ook die behoefte om 'n optimale oplossing te vorm, maar databasisontwerp op Access is dalk meer belowend as op MS SQL Server of Oracle.

Die lys inligtingsbronne kan dinamies wees. Dinamika kan inherent wees aan brondatabasistabelle, tabelveldname en oproep (navraag)reëls. Die ontwerp van relasionele databasisse vanaf verskeie bronne dwing jou duidelik om te ontwerp vanaf die brondata, en nie vanuit die optimale organisasie van die inligting wat ingesamel is nie.

Daar is twee dinge wat inherent in enige databasis is:

  • oriëntasie na inhoud, dinamiese databasisgenereringsalgoritme in prioriteit;
  • oriëntasie om te gebruik, die struktuur van die databasis is belangriker en die algoritme vir die gebruik van inligting is daarop gebaseer.

In enige toepassingsveld is daar 'n formele model van die inkomende inligtingvloei, 'n inligtingstoormodel - die werklike ontwerp van die databasis en 'n model (algoritme) vir die gebruik van data.

Verskeie prosedures en ontwerpstappe

Die basiese beginsels van databasisontwerp val gewoonlik in drie fases. Verskillende spesialiste verwys op verskillende maniere na die stadiums van werk, maar in werklikheid is daar drie posisies:

  • konseptuele beplanning;
  • logiese ontwerp;
  • tegniese uitvoering.

Oefening dra by tot gevestigde tradisies. Maak nie saak hoe kompleks die omvang en die probleem wat opgelos word nie. Dit verg altyd om die regte een te kiesgereedskap. Byvoorbeeld, jy moet inligting van besoekers aan 'n webhulpbron insamel, maar jy moet dit vergelyk met data van MS SQL Server. Die webhulpbron word op FreeBSD (Internet, Apache-bediener) gehuisves, en MS SQL Server in 'n ander stad is beskikbaar via die maatskappy se verspreide netwerk.

databasis ontwerp grondbeginsels
databasis ontwerp grondbeginsels

In hierdie oplossing moet jy eers 'n spesifieke probleem oplos: om data-uitruiling met die interne bediener te bewerkstellig.

Die tegniese uitvoering van 'n algemene taak sal noodwendig 'n impak hê op die aanvanklike stadium: dit is selde dat databasisontwerp van nuuts af gedoen kan word. Selfs met bewese probleemoplossingstegnologie is die omvang besig om te ontwikkel, dit word altyd vereis om iets anders te doen as wat dit oorspronklik bedoel is.

Onlangs werk baie teoretici en praktisyns met entiteite as spesiale data. Dit is abstraksies wat jou toelaat om die model van inligting te beskryf by die inset, tydens verwerking en in die finale resultaat - die databasis.

Data- en entiteitaansigte

DB-ontwerp deur abstraksies en entiteite: die vermoë om 'n inligtingsprentjie te skep, datatipes en verwantskappe tussen hulle te definieer.

Gewoonlik eindig so 'n ontwerp van 'n databasismodel met 'n grafiese model, met behulp van MS Visio of visuele gereedskap van die gekose DBBS. Access het sy eie manier om 'n inligtingsprentjie te vorm, MySQL het sy eie, en sommige inhoudbestuurstelsels verberg die databasis heeltemal, wat 'n datamodel op die ontwikkelaar afdwing deur hul eie entiteite -voorwerpe van die taak wat opgelos word.

'n Kenmerkende kenmerk van baie inhoudbestuurstelsels (CMS) is dat hulle 'n "aansoek" maak vir 'n vlak van groter abstraksie wanneer die inligtingsarea van die probleem wat opgelos word beskryf word. Die regte databasis is versteek, CMS bied die ontwikkelaar sy eie idee van die inligtingsprent van die wêreld.

Gevolglik word die stadiums van databasisontwerp verminder tot die nakoming van die fundamentele vereistes en die uitvoering van die stappe wat deur die skeppers van 'n spesifieke CMS voorgestel word. Daar is niks skandeliks daarin om die idees van databasisse en hul ontwerp van Symfony of Bitrix, Zend of Yii te gebruik nie, maar vir die ontwikkelaar is dit 'n "las".

Ideaal gesproke moet databasisontwerpinstrumente individueel gekies en toegepas word, sonder mening van buite, maar met die toepassing van ervaring en kennis.

inligting databasis ontwerp
inligting databasis ontwerp

Ideaal vir 'n ontwikkelaar om deur Oracle gesertifiseer te word, maar heeltemal aanvaarbaar vir 'n ontwikkelaar se kwalifikasies om insigte in Oracle se inligtingsidees en 'n werkende kennis van MySQL-toepassings in te sluit.

In komplekse projekte en verspreide inligtingverwerking is nie net die databasis belangrik nie, maar ook die bronne van inligting, idees oor die behoeftes van verbruikers.

stadia of span: balans van prioriteite

Die vereiste van konsekwentheid is van die mees onmiddellike belang. Die basiese beginsels van databasisontwerp sluit ook fasering van werk, monitering van intermediêre resultate, herbesinning van elke voltooide stadium in gebaseer op die uitvoering van die volgende tipe werk:

  • sistematies;
  • fasering;
  • terugvoer vanaf enige tydstip tot by die beginposisie.

Hierdie bepalings is abstrak, maar teenwoordig in enige teoretiese en praktiese tegnologie vir die skep van 'n effektiewe databasis.

Geen tegnologie ontwikkel vanself nie, dit word deur mense gedryf. Die kwalifikasies van die ontwikkelingspan is noodsaaklik. Die databasisinligtingsmodel is nie net 'n raamwerk nie, maar ook inligtingvloei.

Wat is meer belangrik: pragtige grafika in die voorstelling van die databasisstruktuur of 'n akkurate beskrywing van inligtingvloei in dinamika - 'n saak nie net van die taak en omvang nie, maar ook die mening van die ontwikkelingspan in dinamika.

databasisstruktuur ontwerp
databasisstruktuur ontwerp

Personeel is alles, maar in konteks: die konseptuele ontwerp van 'n databasis is alles kwalifikasie. Alle mense is uniek, en op die gebied van inligtingstelsels bestaan en ontwikkel voorstellings van spesifieke mense.

Dit is belangrik om 'n span ontwikkelaars te bou, nie 'n mitiese databasisontwerpstappe wat deur 'n gesaghebbende deskundige voorgestel is nie. Die gesag van hierdie spesialis is gevorm op grond van spesifieke werke, op 'n spesifieke tyd. Werk moet vandag gedoen word, nuwe taak, moderne toerusting, vars tegnologie, …

Moontlike omgekeerde. Daar is Excel en Access en "oorvloedige" data in hierdie formate uit antieke tye, toe Windows vir Werkgroepe nog lewendig was. Gedeeltelik oorgebly dBase en Quattro data. Vandag is hierdie woorde reeds vergeet, maar die inligtinggebly het, is dit in aanvraag en moet onttrek word en nuwe idees gevorm word.

Oud en nuut: balans van kennis

Wolktegnologie is nie soos die databasisse wat Ashton-Tate gedoen het nie. Wat Oracle een keer gekoop het, is geensins vergelykbaar met wat dit vandag doen nie. Maar veranderlikes, algoritmes, funksies, lusse en toestande het sedert daardie vroeë 80's in programmering gebly. Tensy die konsep van die prosedure in die vergetelheid gesink het, en alles bly soos dit in antieke tye was.

Selfs moderne idees van objekgeoriënteerde programmering is geklee in die klassieke sintaktiese en semantiese "boeie" van die vorige eeu.

Wat om te doen - programmering is traagheid, en die formalisering van inligting en die ontwerp van inligtingdatabasisse is meer 'n proses as 'n resultaat. Opgestel werk is 'n voorvereiste vir die bereiking van resultate. Maar wie het die aantal herhalings van tussenstadiums amper tot die begin van werk getel?

Inligting is altyd dinamies, niks staan stil nie: veral die vakgebied van die taak en gebruikersvereistes. Elke voltooide fase van werk laat jou toe om op 'n nuwe vlak te evalueer wat reeds gedoen is en wat nog gedoen moet word.

logiese databasisontwerp
logiese databasisontwerp

Om die ontwerp van 'n databasisstruktuur as 'n taak te oorweeg en die finale resultaat te kry, is futiel. Sodra die databasis in werking gestel is, sal 'n nuwe idee sekerlik verskyn, al was die instrument vir die skep van die databasis "eenvoudige" Excel, en nie 'n fantasties kragtige en veelsydige produk van Oracle nie,manipulering van miljoene transaksies, honderdduisende gelyktydige gebruikers en teragrepe inligting.

Die prioriteit is nie die struktuur van die databasis nie, maar die vorming van 'n gekwalifiseerde span spesialiste, plus die verpligte vereiste vir groter dinamika van die resultaat, sodat dit na voltooiing van die werk nie nodig sal wees om te kontak die ontwikkelaars, ten minste 'n paar maande.

Opeenvolgende ontwikkeling en/of hoogspronge

Windows is nie 'n databasis nie, maar dit het 'n oorblyfsel - die register. Die gashere-lêer is bloot 'n identifikasie van die plaaslike masjien se IP-adresse en simboliese name. Maar deur hierdie lêer word inligting vanaf verskillende domeine of na verskillende DBBS'e gevorm.

Dit is moontlik om die veelsydige Windows as 'n werkende rekenaar of bediener te verstaan, maar dit sal op geen manier werk om die logika van die weergawes van hierdie produk te regverdig nie. PHP is ook nie 'n databasis nie, maar die ontwikkelaars se argumente waarom weergawe 5 onmiddellik op weergawe 7 volg, is inkonsekwent. PHP is 'n MySQL-toegangsinstrument, sy sintaksis definieer hoe om navrae te vorm en antwoorde vanaf die databasis te kry deur die SQL-dialek te gebruik.

Voorbeelde van onversoenbaarheid tussen moderne programmeringsnutsmiddels en databasisondersteuning het die afgelope jare die norm geword, maar dit is nie die oorspronklikste nie. Wat sal agter die weergawe van Windows 10 wees? Wat is die vooruitsigte vir Oracle Database 12c?

Inligting van die ontwikkelaar-outeur: Oracle Database 11g Express Edition (Oracle Database XE) is 'n intreevlak DBBS gebaseer op die Oracle Database 11g Release 2 DBMS-kode. Hierdie DBBS is gratis vir ontwikkeling,ontplooiing en verkoop, vinnig aflaai en maklik om te administreer.”

'n Gebruikerontwikkelaar se perspektief: “In 2013 het Oracle Oracle Database 12c (weergawe 12.1.0.1) vrygestel met sleutelvoordele van laer bergingkoste, hoë databeskikbaarheid, maklike databasiskonsolidasie en datatoegangbeskerming "".

Real Practice: 'n Objektiewe, doeltreffende en effektiewe logiese databasisontwerp is slegs beskikbaar vir 'n span gekwalifiseerde ontwikkelaars. Om 'n werkende resultaat te kry is nie moeilik nie, dit is moeilik om die inkomende inligtingvloei te formaliseer en die optimale grondslag te bepaal.

Na die wêreld van gladde vorms uit presiese reghoeke

Met die koms van objekgeoriënteerde programmering het data-serialisering 'n nuwe lewe gekry. Inderdaad, alles rondom is net lyne, verkieslik van onbepaalde lengte. Getalle en datums is ook karakterstringe.

Die krag en objektiwiteit van relasionele verhoudings is onmiskenbaar, maar beskadig die dinamika van kolomme en rye hul reputasie? 'n Tabel is bloot data wat 'n kopskrif ('n lys kolomme) of geen rye kan hê nie. Laat die tabel net 'n versameling data wees, nie noodwendig genoem nie.

Die stel data kan heterogeen wees en jy kan data van verskillende struktuur daarin vind. Fundamenteel dui die homogeniteit van die data op die ontwikkeling van die omvang. Die verspreiding van data volgens tipes en spesies is 'n teken van 'n sistematiese en objektiewe benadering, maar dit is steeds raadsaam om die moontlikheid van struktuurdinamika toe te laat.

Indien uitsetdie ontwerp en skep van 'n databasis buite rigiede strukture en met die veronderstelling dat 'n tabel 'n versameling rye is wat nie noodwendig van dieselfde tipe en soortgelyk in semantiek aan mekaar is nie, dan sal databasisontwerp dramaties verander.

Die onderwerp van die werk sal nie 'n beskrywing van die databasisstruktuur wees nie, maar die dinamika van die beweging van inligting. Die werkfases sal in drie swaartepunte verdeel word:

  • invoerinligtingvloei;
  • transformasie en beweging van inligting binne die databasis;
  • kies data om te gebruik.

Daar is geen konsep van tabelstruktuur nie. Daar is geen rye of kolomme nie. Daar is 'n abstraksie - 'n gegewe, van 'n sekere struktuur, wat aan 'n spesifieke punt in die algoritme voldoen. Meer spesifiek, die inligtingverwerkingsfunksie vereis sekere inligting in 'n spesifieke hoeveelheid.

Die verpligte vereiste van rekursiwiteit van alle inligtingverwerkingsfunksies en fokus op funksies, nie data nie, laat jou toe om 'n databasis te ontwerp in die dinamika van die opgehoopte inligting en inkomende datavloei, wat op die inisiatief van die gebruiker gebruik word, proses of ander funksie.

Om die waarheid te sê: 'n gebruiksein het gekom, 'n haalversoek is ontvang, 'n sneller in die toepassing afgevuur, en die inkomende inligting, deur wat reeds daar was, het die gewenste oplossing verskaf.

Fundamentele kennis en rigiede konstruksies

Kennis is die prerogatief van die mens, programme is die las van rekenaars. Die ontwikkelaar is vry om kennis toe te pas soos hy goeddink in 'n bepaalde situasie. 'n Gewone mens gebruik baie databasisse, sonder om belang daaraan te heg. hoedatabasisse is in die kop van 'n gewone mens georganiseer, niemand weet nie, maar almal weet hoe hy sy besigheid bedryf, waar hy neerskryf wat hy kry, en wanneer hy dit moet gebruik.

Die resultaat van die programmeerder se werk - op die vlak van 'n program in "Basic", wat data van die webwerf van 'n aanlyn winkel via ODBC haal, is gelykstaande aan 'n getitelde Oracle-ontwikkelaar wat 'n versoek rig om data te gaan haal van die MAKS Lugvaart- en Ruimtesalon. Albei resultate "vries" in staties vanaf die oomblik dat die werk voltooi is. Dit is nie aktiewe kennis wat 'n persoon gebruik nie, dit is die geheim van die skep van 'n databasisontwerpstelsel.

Die algoritme kan nie reggemaak word nie. Alles moet dinamies gedefinieer word. Die meriete van gekwalifiseerde ontwikkelaars is onmiskenbaar, maar dit lê glad nie in die elegante vorme van oplossings van Oracle, MySQL of Access, wat beperk is in sy vermoëns nie. Nog 'n Excel-sigblad kan dinamiese inhoud verskaf en nie die deelname van 'n programmeerder vir min of meer ordentlike tyd na voltooiing van werk vereis nie.

Die vraag is hoe goed die dinamika van die toepassingsgebied geformaliseer is, nie die struktuur van die databasis nie.

Live Solutions

Dit is onmoontlik om werk so te beplan dat dit 'n span professionele ontwikkelaars aan 'n taak verbind. Nie dat die span aanstoot geneem het nie, maar dit is nie die regte benadering nie.

Regstreekse oplossings
Regstreekse oplossings

Die taak om 'n databasis te ontwerp moet so geformuleer word dat die ontwikkelde funksionaliteit homself sal verbeter, kennis sal opbou en, in die uitvoering van sy "pligte", nie van die kode begin nie,geskep deur kundiges, maar uit die kennis wat deur hierdie kode verkry is.

Aanbeveel: