Databasedesign: trin og grundlæggende

Indholdsfortegnelse:

Databasedesign: trin og grundlæggende
Databasedesign: trin og grundlæggende
Anonim

Databasedesign er en sekventiel proces med tilpasning af tilgængelig viden og værktøjer til at repræsentere og behandle information.

Det reelle omfang, den specifikke opgave, beskrivelsen af det indkommende informationsflow og generelle ideer om informationsbehandlingsprocessen lægges gradvist sammen til en bestemt konceptuel idé om, hvad en database er i et bestemt tilfælde, og hvordan at arbejde med det.

Moderne database

Relationelle relationer er kernen i enhver informationsmodel. Løsninger fra Oracle svarer i bund og grund til MySQL, men de er fundament alt forskellige i mange aspekter. Databasedesign er også et spørgsmål om sikkerhed, mængden af information og ansvarlighed for dataintegritet, men disse er sekundære i forhold til spørgsmålet om at designe en effektiv, pålidelig og brugervenlig database.

database design trin
database design trin

Excel-tabeller er ikke forskellige fra Oracle og MySQL i forbindelse med rektangulære (relationelle) strukturer: kolonner og rækker=én celle i skæringspunktet mellem kolonnenavnet (feltet) og udvælgelsesindekset (rækken). Hvis du ikke tager højde for mål og mængde af manuelt arbejde, så er Excel, takket være de udviklede metoder til at kombinere celler lodret og vandret, foran selv Oracle!

Excel, ifølge sin grundidé, "stråler" aldrig dynamikken, funktionaliteten i Oracle, og den kan ikke overføre noget fra et ark til et andet "ifølge resterne". Her er Oracle mere lovende, men dets overvejelser om spørgsmålet om migrering af store mængder information og kombination af formaliserede positioner fra forskellige kilder lader meget tilbage at ønske. Her er MySQL mere lovende: det sætter ikke sig selv globale opgaver, men det gør sit arbejde perfekt.

Relationelle relationer er praktiske, praktiske og veletablerede værktøjer, fra private løsninger på Excel-niveau til globale Oracle-mængder, der bruges over alt, efterspørges, og de har en garanteret jobforsynet fremtid.

En moderne database er tabeller, rækker, kolonner og indekser omgivet af fuld funktionalitet, udviklet yderligere værktøjer, der tager højde for flere operationer, tunge belastninger og enorme mængder.

Viden og erfaring med moderne databasestyringssystemer (DBMS) tager ikke kun hensyn til spørgsmålene om pålidelighed, datapålidelighed, adgangsregulering og sikkerhedsspørgsmål, men gør det også muligt at spore negative eksterne påvirkninger, analysere mulige angrebog forsøger med vilje at skade.

En moderne database er et pålideligt grundlag for enhver webressource og lokal applikation, evnen til at migrere information, transformere og overføre data, krydse og kombinere forskellige visninger.

Den eneste væsentlige betingelse: højt kvalificeret udvikler. For at udføre effektivt design af relationelle databaser er tilgængelig for en specialist, og oftere for et team af specialister og eksperter inden for anvendelsesområdet for det problem, der skal løses.

Omfang, mulig løsning og forhindringer

Information cirkulerer over alt. Mange projekter er direkte forbundet til internettet, men faktoren med at have en formel datarepræsentation her er ikke bedre end usikkerhedsfaktoren, når du opretter en webressource til et stålværk.

Udviklingen og den massive interesse for netbutikker giver ikke grundlag og muligheder for at overføre oplevelsen af at skabe én butik til at skabe en anden. Den forretningshemmelige faktor skaber mange forhindringer for overførsel af viden, selvom du faktisk bør adskille den faktiske butik fra de softwareværktøjer, der er oprettet til denne butik.

relationel database design
relationel database design

Selvfølgelig har kunden bet alt, og webstedskoden er hans ejendom. Et karakteristisk træk ved moderniteten: overførsel af viden og udvikling mellem opgaver af samme type og beslægtede anvendelsesområder er umulig, og dette er et problem.

Parsing er en bred vifte af applikationer til databasestyringssystemer. Først og fremmest er det at scanne information fra internettet. Det er lige så vigtigt at sammenligne de oplysninger, der er akkumuleret idatabase og anmodninger fra webbesøgende.

Søgeordsanalyse involverer også behovet for at danne en optimal løsning, men databasedesign på Access kan være mere lovende end på MS SQL Server eller Oracle.

Listen over informationskilder kan være dynamisk. Dynamik kan være iboende i kildedatabasetabeller, tabelfeltnavne og opkaldsregler (forespørgsel). Design af relationelle databaser fra flere kilder tvinger dig klart til at designe ud fra kildedataene og ikke fra den optimale organisering af de indsamlede oplysninger.

Der er to ting, der er iboende i enhver database:

  • orientering til indhold, dynamisk databasegenereringsalgoritme i prioritet;
  • orientering at bruge, strukturen af databasen er vigtigere, og algoritmen til brug af information er baseret på den.

I ethvert anvendelsesområde er der en formel model for det indkommende informationsflow, en informationslagringsmodel - det faktiske design af databasen og en model (algoritme) til brug af data.

Forskellige procedurer og designtrin

Det grundlæggende i databasedesign falder norm alt i tre faser. Forskellige specialister omtaler arbejdsstadierne på forskellige måder, men faktisk er der tre positioner:

  • konceptuel planlægning;
  • logisk design;
  • teknisk udførelse.

Praksis bidrager til etablerede traditioner. Uanset hvor kompleks omfanget og det problem, der skal løses. Det kræver altid at vælge den rigtigeværktøjer. For eksempel skal du indsamle oplysninger fra besøgende på en webressource, men du skal sammenligne dem med data fra MS SQL Server. Webressourcen hostes på FreeBSD (Internet, Apache-server), og MS SQL Server i en anden by er tilgængelig via virksomhedens distribuerede netværk.

grundlæggende databasedesign
grundlæggende databasedesign

I denne løsning skal du først løse et bestemt problem: at etablere dataudveksling med den interne server.

Den tekniske udførelse af en fælles opgave vil nødvendigvis have indflydelse på den indledende fase: Det er sjældent, at databasedesign kan laves fra bunden. Selv med gennemprøvet problemløsningsteknologi udvikler omfanget sig, det er altid nødvendigt at gøre noget anderledes, end det oprindeligt var tiltænkt.

For nylig opererer mange teoretikere og praktikere med entiteter som særlige data. Dette er abstraktioner, der giver dig mulighed for at beskrive informationsmodellen ved input, under bearbejdning og i det endelige resultat - databasen.

Data- og enhedsvisninger

DB-design gennem abstraktioner og entiteter: evnen til at skabe et informationsbillede, definere datatyper og relationer mellem dem.

Sædvanligvis ender et sådant design af en databasemodel med en grafisk model ved hjælp af MS Visio eller visuelle værktøjer fra det valgte DBMS. Access har sin egen måde at danne et informationsbillede på, MySQL har sit eget, og nogle indholdsstyringssystemer skjuler databasen helt og påtvinger udvikleren en datamodel gennem deres egne entiteter -objekter for den opgave, der bliver løst.

Et karakteristisk træk ved mange indholdsstyringssystemer (CMS) er, at de laver en "ansøgning" om et niveau af større abstraktion, når de beskriver informationsområdet for det problem, der skal løses. Den rigtige database er skjult, CMS tilbyder udvikleren sin egen idé om verdens informationsbillede.

Som et resultat er stadierne af databasedesign reduceret til overholdelse af de grundlæggende krav og udførelsen af de trin, der er foreslået af skaberne af et bestemt CMS. Der er intet skammeligt i at bruge ideerne om databaser og deres design fra Symfony eller Bitrix, Zend eller Yii, men for udvikleren er det en "byrde".

Ideelt set bør databasedesignværktøjer vælges og anvendes individuelt uden udtalelser udefra, men med anvendelse af erfaring og viden.

design af informationsdatabase
design af informationsdatabase

Ideelt for en udvikler at blive certificeret af Oracle, men helt acceptabelt for en udviklers kvalifikationer til at inkludere indsigt i Oracles informationsideer og et praktisk kendskab til MySQL-applikationer.

I komplekse projekter og distribueret informationsbehandling er ikke kun databasen vigtig, men også informationskilderne, ideer om forbrugernes behov.

Stadier eller hold: balance mellem prioriteter

Kravet om konsistens er af den mest umiddelbare betydning. Det grundlæggende i databasedesign inkluderer også indfasning af arbejdet, overvågning af mellemresultater, nytænkning af hver afsluttet fase baseret på udførelsen af følgende type arbejde:

  • systematisk;
  • phasing;
  • feedback fra ethvert tidspunkt til selve startpositionen.

Disse bestemmelser er abstrakte, men til stede i enhver teoretisk og praktisk teknologi til at skabe en effektiv database.

Ingen teknologi udvikler sig af sig selv, den er drevet af mennesker. Udviklingsteamets kvalifikationer er afgørende. Databaseinformationsmodellen er ikke kun en ramme, men også informationsstrømme.

Hvad er mere vigtigt: smuk grafik i repræsentationen af databasestrukturen eller en nøjagtig beskrivelse af informationsstrømme i dynamikken - et spørgsmål ikke kun om opgaven og omfanget, men også udviklingsteamets mening om dynamik.

design af databasestruktur
design af databasestruktur

Personal er alt, men i kontekst: det konceptuelle design af en database er alt kvalifikation. Alle mennesker er unikke, og inden for informationssystemer eksisterer og udvikles repræsentationer af specifikke mennesker.

Det er vigtigt at bygge et team af udviklere, ikke nogle mytiske databasedesigntrin foreslået af en autoritativ ekspert. Denne specialists autoritet blev dannet på grundlag af specifikke værker på et bestemt tidspunkt. Der skal arbejdes i dag, ny opgave, moderne udstyr, frisk teknologi, …

Mulig omvendt. Der er Excel og Access og "rigelige" data i disse formater fra oldtiden, hvor Windows for Workgoups stadig levede i bedste velgående. Delvist forblev dBase- og Quattro-data. I dag er disse ord allerede blevet glemt, men informationenforblevet, er det efterspurgt og skal udvindes og dannes nye ideer.

Gammelt og nyt: balance mellem viden

Cloud-teknologi er ikke som de databaser, som Ashton-Tate gjorde. Hvad Oracle engang købte, er på ingen måde sammenligneligt med, hvad det gør i dag. Men variabler, algoritmer, funktioner, sløjfer og betingelser er forblevet i programmering siden de tidlige 80'ere. Medmindre konceptet med proceduren er sunket i glemmebogen, og alt forbliver, som det var i oldtiden.

Selv moderne ideer om objektorienteret programmering er iklædt det sidste århundredes klassiske syntaktiske og semantiske "bindebånd".

Hvad skal man gøre - programmering er inerti, og formalisering af information og design af informationsdatabaser er mere en proces end et resultat. Iscenesat arbejde er en forudsætning for at opnå resultater. Men hvem t alte antallet af iterationer fra mellemstadier næsten til arbejdets start?

Information er altid dynamisk, intet står stille: især opgavens emneområde og brugerkrav. Hvert afsluttet trin af arbejdet giver dig mulighed for på et nyt niveau at evaluere, hvad der allerede er blevet gjort, og hvad der mangler at blive gjort.

logisk databasedesign
logisk databasedesign

At overveje at designe en databasestruktur som en opgave og få det endelige resultat er nyttesløst. Så snart databasen er sat i drift, dukker der helt sikkert en ny idé op, selvom værktøjet til at oprette databasen var "simpelt" Excel, og ikke et fantastisk kraftfuldt og alsidigt produkt fra Oracle,manipulerer millioner af transaktioner, hundredtusindvis af samtidige brugere og terabytes af information.

Prioriteten er ikke strukturen af databasen, men dannelsen af et kvalificeret team af specialister, plus det obligatoriske krav om større dynamik i resultatet, så det efter arbejdets afslutning ikke ville være nødvendigt at kontakte udviklerne, mindst et par måneder.

Sekventiel udvikling og/eller højdespring

Windows er ikke en database, men den har et levn - registreringsdatabasen. Hosts-filen er simpelthen en identifikation af den lokale maskines IP-adresser og symbolske navne. Men gennem denne fil dannes informationsstrømme fra forskellige domæner eller til forskellige DBMS'er.

Det er muligt at forstå det mangesidede Windows som en fungerende computer eller server, men det vil på ingen måde fungere for at retfærdiggøre logikken i versionerne af dette produkt. PHP er heller ikke en database, men udviklernes argumenter for, hvorfor version 5 umiddelbart følger efter version 7, er inkonsekvente. PHP er et MySQL-adgangsværktøj, dets syntaks definerer, hvordan man danner forespørgsler og får svar fra databasen ved hjælp af SQL-dialekten.

Eksempler på inkompatibilitet mellem moderne programmeringsværktøjer og databaseunderstøttelse er blevet normen i de senere år, men dette er ikke det mest originale. Hvad vil være bag versionen af Windows 10? Hvad er udsigterne for Oracle Database 12c?

Oplysninger om udvikleren-forfatteren: "Oracle Database 11g Express Edition (Oracle Database XE) er en entry-level DBMS baseret på Oracle Database 11g Release 2 DBMS-koden. Denne DBMS er gratis til udvikling,implementering og salg, hurtig download og nem at administrere."

En brugerudviklers perspektiv: "I 2013 udgav Oracle Oracle Database 12c (version 12.1.0.1) med vigtige fordele i form af lavere lageromkostninger, høj datatilgængelighed, nem databasekonsolidering og dataadgangsbeskyttelse "".

Reel praksis: Et objektivt, effektivt og effektivt logisk databasedesign er kun tilgængeligt for et team af kvalificerede udviklere. At få et fungerende resultat er ikke svært, det er svært at formalisere de indkommende informationsstrømme og bestemme det optimale grundlag.

Til en verden af glatte former fra præcise rektangler

Med fremkomsten af objektorienteret programmering har dataserialisering fået et nyt liv. Faktisk er alt omkring kun linjer, helst af ubestemt længde. Tal og datoer er også tegnstrenge.

Kraften og objektiviteten i relationelle relationer er ubestridelig, men skader dynamikken i kolonner og rækker deres omdømme? En tabel er simpelthen data, der kan have en overskrift (en liste over kolonner) eller ingen rækker. Lad tabellen kun være en samling af data, ikke nødvendigvis navngivet.

Sættet af data kan være heterogent, og du kan finde data med forskellig struktur i det. Grundlæggende indikerer homogeniteten af dataene udviklingen af omfanget. Fordelingen af data efter typer og arter er et tegn på en systematisk og objektiv tilgang, men det er stadig tilrådeligt at indrømme muligheden for strukturdynamik.

Hvis outputat designe og skabe en database ud over stive strukturer og antage, at en tabel er en samling af rækker, der ikke nødvendigvis er af samme type og ligner hinanden i semantik, så vil databasedesign ændre sig dramatisk.

Emnet for værket vil ikke være en beskrivelse af databasestrukturen, men dynamikken i bevægelsen af information. Arbejdsstadierne vil blive opdelt i tre tyngdepunkter:

  • input informationsflow;
  • transformation og flytning af information i databasen;
  • vælg data, der skal bruges.

Der er intet koncept for tabelstruktur. Der er ingen rækker eller kolonner. Der er en abstraktion - en given, af en bestemt struktur, der opfylder et specifikt punkt i algoritmen. Mere specifikt kræver informationsbehandlingsfunktionen visse oplysninger i et bestemt beløb.

Det obligatoriske krav om rekursivitet af alle informationsbehandlingsfunktioner og fokus på funktioner, ikke data, giver dig mulighed for at designe en database i dynamikken i den akkumulerede information og indgående datastrøm, som bruges på brugerens initiativ, proces eller anden funktion.

Faktisk: der kom et brugssignal, en hentningsanmodning blev modtaget, en trigger i applikationen blev udløst, og den indkommende information, gennem det, der allerede var der, gav den ønskede løsning.

Fundamental viden og stive konstruktioner

Viden er menneskets prærogativ, programmer er computernes byrde. Udvikleren kan frit anvende viden, som han finder passende i en bestemt situation. En almindelig person bruger mange databaser, uden at lægge vægt på det. hvordandatabaser er organiseret i hovedet på en almindelig person, ingen ved, men alle ved, hvordan han driver sin forretning, hvor han skriver ned, hvad han finder, og hvornår han skal bruge det.

Resultatet af programmørens arbejde - på niveau med et program i "Basic", som henter data fra hjemmesiden for en online butik via ODBC, svarer til en titlen Oracle-udvikler, der fremsætter en anmodning om at hente data fra MAKS Luftfarts- og Rumsalon. Begge resultater "fryser" i statisk fra det øjeblik, arbejdet er afsluttet. Dette er ikke aktiv viden, som en person bruger, dette er hemmeligheden ved at skabe et databasedesignsystem.

Algorithmen kan ikke rettes. Alt skal defineres dynamisk. Kvalificerede udvikleres fordele er ubestridelige, men de ligger slet ikke i de elegante løsninger fra Oracle, MySQL eller Access, som er begrænset i sine muligheder. Et andet Excel-regneark kan give dynamisk indhold og ikke kræve deltagelse af en programmør i mere eller mindre anstændig tid efter endt arbejde.

Spørgsmålet er, hvor godt dynamikken i applikationsområdet er formaliseret, ikke strukturen af databasen.

Live Solutions

Det er umuligt at planlægge arbejdet på en sådan måde, at det binder et team af professionelle udviklere til en opgave. Ikke at holdet blev fornærmet, men det er ikke den rigtige tilgang.

Live løsninger
Live løsninger

Opgaven med at designe en database bør formuleres på en sådan måde, at den udviklede funktionalitet ville forbedre sig selv, akkumulere viden og, i udførelsen af sine "pligter", ikke tage udgangspunkt i koden,skabt af eksperter, men fra den viden, der er erhvervet gennem denne kode.

Anbefalede: