Databasedesign er en sekvensiell prosess for å tilpasse tilgjengelig kunnskap og verktøy for å representere og behandle informasjon.
Det reelle omfanget, den spesifikke oppgaven, beskrivelsen av den innkommende informasjonsflyten og generelle ideer om informasjonsbehandlingsprosessen legges gradvis sammen til en viss konseptuell idé om hva en database er i et bestemt tilfelle og hvordan å jobbe med det.
Moderne database
Relasjonelle relasjoner er kjernen i enhver informasjonsmodell. Løsninger fra Oracle tilsvarer MySQL i hovedsak, men de er fundament alt forskjellige i mange aspekter. Databasedesign er også et spørsmål om sikkerhet, informasjonsmengde og ansvarlighet for dataintegritet, men disse er sekundære til spørsmålet om å designe en effektiv, pålitelig og brukervennlig database.
Excel-tabeller er ikke forskjellig fra Oracle og MySQL i sammenheng med rektangulære (relasjonelle) strukturer: kolonner og rader=én celle i skjæringspunktet mellom kolonnenavnet (feltet) og utvalgsindeksen (rad). Hvis du ikke tar hensyn til mål og mengde manuelt arbeid, så, takket være de utviklede metodene for å kombinere celler vertik alt og horisont alt, er Excel foran til og med Oracle!
Excel, i henhold til sin grunnleggende idé, "skinner" aldri dynamikken, funksjonaliteten til Oracle, og den kan ikke overføre noe fra ett ark til et annet "i henhold til restene". Her er Oracle mer lovende, men dets betraktninger om spørsmålene om å migrere store mengder informasjon og kombinere formaliserte stillinger fra ulike kilder lar mye å være ønsket. Her er MySQL mer lovende: den setter seg ikke globale oppgaver, men den gjør jobben sin perfekt.
Relasjonelle relasjoner er praktiske, praktiske og veletablerte verktøy, fra private Excel-nivåløsninger til Oracle globale volumer, brukes over alt, etterspurt, og de har en garantert jobb-forutsatt fremtid.
En moderne database er tabeller, rader, kolonner og indekser omgitt av full funksjonalitet, utviklet tilleggsverktøy som tar hensyn til flere operasjoner, tung belastning og store volumer.
Kunnskap og erfaring med moderne databasestyringssystemer (DBMS) tar ikke bare hensyn til spørsmål om pålitelighet, datapålitelighet, tilgangsregulering og sikkerhetsproblemer, men gjør det også mulig å spore negativ ekstern påvirkning, analysere mulige angrepog forsøker å skade med vilje.
En moderne database er et pålitelig grunnlag for enhver nettressurs og lokal applikasjon, evnen til å migrere informasjon, transformere og overføre data, krysse og kombinere ulike visninger.
Den eneste essensielle betingelsen: høyt kvalifisert utvikler. For å utføre effektiv design av relasjonsdatabaser er tilgjengelig for en spesialist, og oftere for et team av spesialister og eksperter innen bruksområdet for problemet som skal løses.
Omfang, mulig løsning og hindringer
Informasjon sirkulerer over alt. Mange prosjekter er direkte koblet til Internett, men faktoren med å ha en formell datarepresentasjon her er ikke bedre enn usikkerhetsfaktoren når man oppretter en nettressurs for et stålverk.
Utviklingen og den massive interessen for nettbutikker gir ikke grunnlag og muligheter for å overføre opplevelsen av å opprette en butikk til å skape en annen. Den forretningshemmelige faktoren skaper mange hindringer for overføring av kunnskap, selv om du faktisk bør skille den faktiske butikken fra programvareverktøyene som er laget for denne butikken.
Selvfølgelig bet alte kunden og nettstedkoden er hans eiendom. Et karakteristisk trekk ved moderniteten: overføring av kunnskap og utvikling mellom oppgaver av samme type og relaterte bruksområder er umulig, og dette er et problem.
Parsing er et bredt spekter av applikasjoner for databasestyringssystemer. Først av alt er det skanning av informasjon fra Internett. Det er like viktig å sammenligne informasjonen som er samlet inndatabase og nettbesøksforespørsler.
Søkeordanalyse innebærer også behovet for å danne en optimal løsning, men databasedesign på Access kan være mer lovende enn på MS SQL Server eller Oracle.
Listen over informasjonskilder kan være dynamisk. Dynamikk kan være iboende i kildedatabasetabeller, tabellfeltnavn og anropsregler (spørring). Utforming av relasjonsdatabaser fra flere kilder tvinger deg tydeligvis til å designe fra kildedataene, og ikke fra den optimale organiseringen av informasjonen som samles inn.
Det er to ting som er iboende i enhver database:
- orientering til innhold, dynamisk databasegenereringsalgoritme i prioritet;
- orientering å bruke, strukturen til databasen er viktigere og algoritmen for bruk av informasjon er basert på den.
I ethvert bruksområde finnes det en formell modell for den innkommende informasjonsflyten, en informasjonslagringsmodell - selve utformingen av databasen og en modell (algoritme) for bruk av data.
Ulike prosedyrer og designtrinn
Det grunnleggende om databasedesign faller vanligvis i tre stadier. Ulike spesialister refererer til arbeidsstadiene på forskjellige måter, men det er faktisk tre stillinger:
- konseptuell planlegging;
- logisk design;
- teknisk utførelse.
Praksis bidrar til etablerte tradisjoner. Uansett hvor komplekst omfanget og problemet som løses. Det krever alltid å velge den retteverktøy. Du må for eksempel samle inn informasjon fra besøkende til en nettressurs, men du må sammenligne den med data fra MS SQL Server. Nettressursen er vert på FreeBSD (Internett, Apache-server), og MS SQL Server i en annen by er tilgjengelig via selskapets distribuerte nettverk.
I denne løsningen må du først løse et spesielt problem: å etablere datautveksling med den interne serveren.
Den tekniske utførelsen av en felles oppgave vil nødvendigvis ha innvirkning på startfasen: det er sjelden databasedesign kan gjøres fra bunnen av. Selv med utprøvd problemløsningsteknologi, utvikler omfanget seg, det kreves alltid å gjøre noe annerledes enn det opprinnelig var ment.
Nylig opererer mange teoretikere og praktikere med enheter som spesielle data. Dette er abstraksjoner som lar deg beskrive informasjonsmodellen ved inngangen, under behandlingen og i det endelige resultatet - databasen.
Data- og enhetsvisninger
DB-design gjennom abstraksjoner og entiteter: muligheten til å lage et informasjonsbilde, definere datatyper og relasjoner mellom dem.
Vanligvis ender en slik utforming av en databasemodell med en grafisk modell, ved bruk av MS Visio eller visuelle verktøy for det valgte DBMS. Access har sin egen måte å danne et informasjonsbilde på, MySQL har sin egen, og noen innholdsstyringssystemer skjuler databasen helt, og påtvinger utvikleren en datamodell gjennom sine egne enheter -objekter for oppgaven som løses.
Et karakteristisk trekk ved mange innholdsstyringssystemer (CMS) er at de "søker" om et nivå av større abstraksjon når de beskriver informasjonsområdet for problemet som skal løses. Den virkelige databasen er skjult, CMS tilbyr utvikleren sin egen idé om verdens informasjonsbilde.
Som et resultat reduseres stadiene av databasedesign til overholdelse av de grunnleggende kravene og utførelsen av trinnene foreslått av skaperne av et bestemt CMS. Det er ikke noe skammelig i å bruke ideene til databaser og deres design fra Symfony eller Bitrix, Zend eller Yii, men for utvikleren er det en "belastning".
Ideelt sett bør databasedesignverktøy velges og brukes individuelt, uten meninger utenfra, men med bruk av erfaring og kunnskap.
Ideell for en utvikler å bli sertifisert av Oracle, men helt akseptabelt for en utvikleres kvalifikasjoner for å inkludere innsikt i Oracles informasjonsideer og en praktisk kunnskap om MySQL-applikasjoner.
I komplekse prosjekter og distribuert informasjonsbehandling er ikke bare databasen viktig, men også informasjonskildene, ideer om forbrukernes behov.
Stages eller team: balanse mellom prioriteringer
Kravet om konsistens er av den mest umiddelbare betydning. Grunnleggende om databasedesign inkluderer også innfasing av arbeid, overvåking av mellomresultater, revisjon av hvert fullført trinn basert på utførelse av følgende type arbeid:
- systematisk;
- phasing;
- tilbakemelding fra ethvert tidspunkt, helt til startposisjonen.
Disse bestemmelsene er abstrakte, men til stede i enhver teoretisk og praktisk teknologi for å lage en effektiv database.
Ingen teknologi utvikler seg av seg selv, den er drevet av mennesker. Kvalifikasjonene til utviklingsteamet er avgjørende. Databaseinformasjonsmodellen er ikke bare et rammeverk, men også informasjonsflyter.
Hva er viktigere: vakker grafikk i representasjonen av databasestrukturen eller en nøyaktig beskrivelse av informasjonsflyter i dynamikk - et spørsmål ikke bare om oppgaven og omfanget, men også utviklingsteamets mening om dynamikk.
Personal er alt, men i kontekst: den konseptuelle utformingen av en database er alt kvalifisering. Alle mennesker er unike, og innen informasjonssystemer eksisterer og utvikler representasjoner av spesifikke mennesker.
Det er viktig å bygge et team av utviklere, ikke noen mytiske databasedesigntrinn foreslått av en autoritativ ekspert. Autoriteten til denne spesialisten ble dannet på grunnlag av spesifikke arbeider, på et bestemt tidspunkt. Arbeid må gjøres i dag, ny oppgave, moderne utstyr, fersk teknologi, …
Mulig revers. Det er Excel og Access og "rikelig" data i disse formatene fra eldgamle tider, da Windows for Workgoups fortsatt levde i beste velgående. Delvis gjenværende dBase- og Quattro-data. I dag er disse ordene allerede glemt, men informasjonenble igjen, er det etterspurt og må utvinnes og dannes nye ideer.
Gammelt og nytt: kunnskapsbalanse
Skyteknologi er ikke som databasene som Ashton-Tate gjorde. Det Oracle en gang kjøpte er på ingen måte sammenlignbart med det det gjør i dag. Men variabler, algoritmer, funksjoner, løkker og betingelser har holdt seg i programmering siden tidlig på 80-tallet. Med mindre konseptet med prosedyren har sunket i glemmeboken, og alt forblir som det var i gamle tider.
Selv moderne ideer om objektorientert programmering er kledd i de klassiske syntaktiske og semantiske "bindingene" fra forrige århundre.
What to do - programmering er treghet, og formalisering av informasjon og utforming av informasjonsdatabaser er mer en prosess enn et resultat. Etappevis arbeid er en forutsetning for å oppnå resultater. Men hvem telte antall iterasjoner fra mellomstadier nesten til starten av arbeidet?
Informasjon er alltid dynamisk, ingenting står stille: spesielt oppgavens fagområde og brukerkrav. Hver fullført arbeidsfase lar deg evaluere på et nytt nivå hva som allerede er gjort og hva som gjenstår å gjøre.
Å vurdere å designe en databasestruktur som en oppgave og få det endelige resultatet er fåfengt. Så snart databasen er satt i drift, vil det garantert dukke opp en ny idé, selv om verktøyet for å lage databasen var "enkelt" Excel, og ikke et fantastisk kraftig og allsidig produkt fra Oracle,manipulerer millioner av transaksjoner, hundretusenvis av samtidige brukere og terabyte med informasjon.
Prioriteten er ikke strukturen til databasen, men dannelsen av et kvalifisert team av spesialister, pluss det obligatoriske kravet om større dynamikk i resultatet, slik at det etter endt arbeid ikke vil være nødvendig å kontakte utviklerne, minst et par måneder.
Sekvensiell utvikling og/eller høye hopp
Windows er ikke en database, men den har en relikvie - registeret. Hosts-filen er ganske enkelt en identifikasjon av den lokale maskinens IP-adresser og symbolske navn. Men gjennom denne filen dannes informasjonsflyt fra forskjellige domener eller til forskjellige DBMS-er.
Det er mulig å forstå det mangesidige Windows som en fungerende datamaskin eller server, men det vil ikke fungere på noen måte for å rettferdiggjøre logikken i versjonene av dette produktet. PHP er heller ikke en database, men utviklernes argumenter for hvorfor versjon 5 umiddelbart følger etter versjon 7 er inkonsekvente. PHP er et MySQL-tilgangsverktøy, dets syntaks definerer hvordan du oppretter spørringer og får svar fra databasen ved å bruke SQL-dialekten.
Eksempler på inkompatibilitet mellom moderne programmeringsverktøy og databasestøtte har blitt normen de siste årene, men dette er ikke det mest originale. Hva vil ligge bak versjonen av Windows 10? Hva er utsiktene for Oracle Database 12c?
Informasjon om utvikler-forfatter: Oracle Database 11g Express Edition (Oracle Database XE) er en inngangsnivå DBMS basert på Oracle Database 11g Release 2 DBMS-koden. Denne DBMS er gratis for utvikling,distribusjon og salg, rask nedlasting og enkel å administrere.»
En brukerutviklers perspektiv: "I 2013 ga Oracle ut Oracle Database 12c (versjon 12.1.0.1) med nøkkelfordeler som lavere lagringskostnader, høy datatilgjengelighet, enkel databasekonsolidering og datatilgangsbeskyttelse "".
Real Practice: En objektiv, effektiv og effektiv logisk databasedesign er kun tilgjengelig for et team med kvalifiserte utviklere. Å få et fungerende resultat er ikke vanskelig, det er vanskelig å formalisere de innkommende informasjonsstrømmene og bestemme det optimale grunnlaget.
Til en verden av glatte former fra presise rektangler
Med bruken av objektorientert programmering har dataserialisering fått et nytt liv. Alt rundt er faktisk bare linjer, helst av ubestemt lengde. Tall og datoer er også tegnstrenger.
Kraften og objektiviteten til relasjonelle relasjoner er ubestridelig, men skader dynamikken til kolonner og rader deres omdømme? En tabell er ganske enkelt data som kan ha en overskrift (en liste over kolonner) eller ingen rader. La tabellen bare være en samling av data, ikke nødvendigvis navngitt.
Datasettet kan være heterogent, og du kan finne data med ulik struktur i det. I utgangspunktet indikerer homogeniteten til dataene utviklingen av omfanget. Fordelingen av data etter typer og arter er et tegn på en systematisk og objektiv tilnærming, men det er likevel tilrådelig å innrømme muligheten for strukturdynamikk.
Hvis utgangå designe og lage en database utover rigide strukturer og anta at en tabell er en samling av rader som ikke nødvendigvis er av samme type og ligner hverandre i semantikk, så vil databasedesign endre seg dramatisk.
Emnet for arbeidet vil ikke være en beskrivelse av databasestrukturen, men dynamikken i bevegelsen av informasjon. Arbeidsfasene vil bli delt inn i tre tyngdepunkter:
- inndataflyt;
- transformasjon og bevegelse av informasjon i databasen;
- velg data som skal brukes.
Det finnes ikke noe konsept for tabellstruktur. Det er ingen rader eller kolonner. Det er en abstraksjon - en gitt, av en viss struktur, som tilfredsstiller et spesifikt punkt i algoritmen. Mer spesifikt krever informasjonsbehandlingsfunksjonen viss informasjon i et bestemt beløp.
Det obligatoriske kravet om rekursivitet for alle informasjonsbehandlingsfunksjoner og fokus på funksjoner, ikke data, lar deg designe en database i dynamikken til den akkumulerte informasjonen og innkommende dataflyt, som brukes på brukerens initiativ, prosess eller annen funksjon.
Faktisk: et brukssignal kom, en henteforespørsel ble mottatt, en trigger i applikasjonen ble utløst, og den innkommende informasjonen, gjennom det som allerede var der, ga ønsket løsning.
Fundamental kunnskap og rigide konstruksjoner
Kunnskap er menneskets privilegium, programmer er datamaskinens byrde. Utvikleren står fritt til å anvende kunnskap slik han finner det passende i en bestemt situasjon. En vanlig person bruker mange databaser, uten å legge vekt på det. hvordandatabaser er organisert i hodet på en vanlig person, ingen vet, men alle vet hvordan han driver sin virksomhet, hvor han skriver ned hva han finner, og når han trenger å bruke det.
Resultatet av programmererens arbeid - på nivå med et program i "Basic", som henter data fra nettsiden til en nettbutikk via ODBC, tilsvarer en tittelen Oracle-utvikler som kommer med en forespørsel om å hente data fra MAKS Aviation and Space Salon. Begge resultatene "fryser" i statisk fra det øyeblikket arbeidet er fullført. Dette er ikke aktiv kunnskap som en person bruker, dette er hemmeligheten ved å lage et databasedesignsystem.
Algorithmen kan ikke fikses. Alt må defineres dynamisk. Fordelene til kvalifiserte utviklere er ubestridelige, men de ligger overhodet ikke i de elegante løsningsformene fra Oracle, MySQL eller Access, som er begrenset i sine muligheter. Et annet Excel-regneark kan gi dynamisk innhold og ikke kreve deltakelse av en programmerer i mer eller mindre anstendig tid etter fullført arbeid.
Spørsmålet er hvor godt dynamikken i applikasjonsområdet er formalisert, ikke strukturen til databasen.
Live Solutions
Det er umulig å planlegge arbeidet på en slik måte at det knytter et team av profesjonelle utviklere til en oppgave. Ikke at laget ble fornærmet, men dette er ikke riktig tilnærming.
Oppgaven med å designe en database bør formuleres på en slik måte at den utviklede funksjonaliteten vil forbedre seg selv, akkumulere kunnskap og, i utførelsen av sine "plikter", ikke ta utgangspunkt i koden,laget av eksperter, men fra kunnskapen som er tilegnet gjennom denne koden.