Databasdesign är en sekventiell process för att anpassa tillgänglig kunskap och verktyg för att representera och bearbeta information.
Det verkliga omfattningen, den specifika uppgiften, beskrivningen av det inkommande informationsflödet och allmänna idéer om informationsbehandlingsprocessen adderas gradvis till en viss konceptuell uppfattning om vad en databas är i ett särskilt fall och hur att arbeta med det.
Modern databas
Relationella relationer är kärnan i alla informationsmodeller. Lösningar från Oracle är likvärdiga med MySQL i huvudsak, men de är fundament alt olika i många aspekter. Databasdesign är också en fråga om säkerhet, informationsvolym och ansvar för dataintegritet, men dessa är sekundära till frågan om att utforma en effektiv, pålitlig och användarvänlig databas.
Excel-tabeller skiljer sig inte från Oracle och MySQL i samband med rektangulära (relationella) strukturer: kolumner och rader=en cell i skärningspunkten mellan kolumnnamnet (fältet) och urvalsindexet (rad). Om du inte tar hänsyn till mått och mängd manuellt arbete, så är Excel, tack vare de utvecklade sätten att kombinera celler vertik alt och horisontellt, före Oracle!
Excel, enligt sin grundidé, "lyser" aldrig dynamiken, funktionaliteten hos Oracle, och det kan inte överföra något från ett ark till ett annat "enligt resterna". Här är Oracle mer lovande, men dess överväganden kring frågorna om att migrera stora mängder information och kombinera formaliserade positioner från olika källor lämnar mycket övrigt att önska. Här är MySQL mer lovande: det ställer inte upp globala uppgifter, men det gör sitt jobb perfekt.
Relationella relationer är bekväma, praktiska och väletablerade verktyg, från privata lösningar på Excel-nivå till Oracle globala volymer, används överallt, efterfrågas och de har en garanterad framtid som tillhandahålls av jobb.
En modern databas är tabeller, rader, kolumner och index omgivna av full funktionalitet, utvecklade ytterligare verktyg som tar hänsyn till flera operationer, tunga belastningar och enorma volymer.
Kunskap och erfarenhet av moderna databashanteringssystem (DBMS) tar inte bara hänsyn till frågorna om tillförlitlighet, datatillförlitlighet, åtkomstreglering och säkerhetsfrågor, utan gör det också möjligt att spåra negativ extern påverkan, analysera möjliga attackeroch försöker avsiktligt skada.
En modern databas är en pålitlig grund för alla webbresurser och lokala applikationer, förmågan att migrera information, transformera och överföra data, skära och kombinera olika vyer.
Det enda väsentliga villkoret: högkvalificerad utvecklare. För att utföra effektiv design av relationsdatabaser är tillgänglig för en specialist, och oftare för ett team av specialister och experter inom tillämpningsområdet för det problem som löses.
Omfattning, möjlig lösning och hinder
Information cirkulerar överallt. Många projekt är direkt anslutna till Internet, men faktorn att ha en formell datarepresentation här är inte bättre än osäkerhetsfaktorn när man skapar en webbresurs för ett stålverk.
Utvecklingen och det massiva intresset för nätbutiker ger inte skäl och möjligheter att överföra upplevelsen av att skapa en butik till att skapa en annan. Affärshemlighetsfaktorn skapar många hinder för överföring av kunskap, även om du faktiskt borde separera den faktiska butiken från mjukvaruverktygen som skapats för denna butik.
Naturligtvis betalade kunden och webbplatskoden är hans egendom. Ett karakteristiskt drag för moderniteten: överföring av kunskap och utveckling mellan uppgifter av samma typ och relaterade tillämpningsområden är omöjligt och detta är ett problem.
Parsing är ett brett utbud av applikationer för databashanteringssystem. Först och främst är det att skanna information från Internet. Det är lika viktigt att jämföra den information som samlas indatabas och webbbesökarförfrågningar.
Sökordsanalys innebär också behovet av att skapa en optimal lösning, men databasdesign på Access kan vara mer lovande än på MS SQL Server eller Oracle.
Listen över informationskällor kan vara dynamisk. Dynamik kan vara inneboende i källdatabastabeller, tabellfältnamn och anropsregler (fråga). Att designa relationsdatabaser från flera källor tvingar dig helt klart att designa utifrån källdata och inte från den optimala organisationen av den insamlade informationen.
Det finns två saker som är inneboende i en databas:
- orientering till innehåll, dynamisk databasgenereringsalgoritm i prioritet;
- orientering att använda, databasens struktur är viktigare och algoritmen för att använda information är baserad på den.
I alla användningsområden finns det en formell modell för det inkommande informationsflödet, en informationslagringsmodell - själva utformningen av databasen och en modell (algoritm) för att använda data.
Olika procedurer och designsteg
Grunderna i databasdesign delas vanligtvis in i tre steg. Olika specialister refererar till arbetsstadierna på olika sätt, men i själva verket finns det tre positioner:
- konceptuell planering;
- logisk design;
- tekniskt utförande.
Övning bidrar till etablerade traditioner. Oavsett hur komplex omfattningen och problemet som ska lösas. Det krävs alltid att man väljer rättverktyg. Du behöver till exempel samla in information från besökare till en webbresurs, men du måste jämföra den med data från MS SQL Server. Web-resursen finns på FreeBSD (Internet, Apache-server), och MS SQL Server i en annan stad är tillgänglig via företagets distribuerade nätverk.
I den här lösningen måste du först lösa ett särskilt problem: att etablera datautbyte med den interna servern.
Det tekniska utförandet av en vanlig uppgift kommer med nödvändighet att påverka det inledande skedet: det är sällsynt att databasdesign kan göras från grunden. Även med beprövad problemlösningsteknik utvecklas omfattningen, det krävs alltid att man gör något annorlunda än det var tänkt från början.
Nyligen har många teoretiker och praktiker arbetat med entiteter som specialdata. Detta är abstraktioner som låter dig beskriva informationsmodellen vid ingången, under bearbetningen och i det slutliga resultatet - databasen.
Data- och enhetsvyer
DB-design genom abstraktioner och entiteter: förmågan att skapa en informationsbild, definiera datatyper och relationer mellan dem.
Vanligtvis slutar en sådan design av en databasmodell med en grafisk modell, med hjälp av MS Visio eller visuella verktyg för det valda DBMS. Access har sitt eget sätt att bilda en informationsbild, MySQL har sin egen, och vissa innehållshanteringssystem döljer databasen helt och hållet och påtvingar utvecklaren en datamodell genom sina egna enheter -objekt för uppgiften som löses.
Kännetecknande för många innehållshanteringssystem (CMS) är att de gör en "ansökan" för en nivå av större abstraktion när de beskriver informationsområdet för problemet som löses. Den verkliga databasen är dold, CMS erbjuder utvecklaren sin egen uppfattning om världens informationsbild.
Som ett resultat reduceras stadierna av databasdesign till att uppfylla de grundläggande kraven och genomförandet av de steg som föreslagits av skaparna av ett visst CMS. Det finns inget skamligt i att använda idéerna med databaser och deras design från Symfony eller Bitrix, Zend eller Yii, men för utvecklaren är det en "börda".
Helst bör databasdesignverktyg väljas och tillämpas individuellt, utan åsikter utifrån, men med tillämpning av erfarenhet och kunskap.
Idealiskt för en utvecklare att bli certifierad av Oracle, men helt acceptabelt för en utvecklares kvalifikationer för att inkludera insikter i Oracles informationsidéer och en praktisk kunskap om MySQL-applikationer.
I komplexa projekt och distribuerad informationsbehandling är inte bara databasen viktig, utan också informationskällorna, idéer om konsumenternas behov.
Stapper eller lag: balans mellan prioriteringar
Kravet på konsekvens är av yttersta vikt. Grunderna i databasdesign inkluderar även infasning av arbete, övervakning av mellanresultat, omprövning av varje genomfört steg baserat på utförandet av följande typ av arbete:
- systematisk;
- fasning;
- feedback från vilken tidpunkt som helst, till själva startpositionen.
Dessa bestämmelser är abstrakta, men finns i all teoretisk och praktisk teknik för att skapa en effektiv databas.
Ingen teknik utvecklas av sig själv, den drivs av människor. Utvecklingsteamets kvalifikationer är viktiga. Databasinformationsmodellen är inte bara ett ramverk, utan också informationsflöden.
Vad är viktigare: vacker grafik i representationen av databasstrukturen eller en korrekt beskrivning av informationsflöden i dynamiken - en fråga inte bara om uppgiften och omfattningen, utan också utvecklingsteamets åsikt i dynamik.
Personal är allt, men i sammanhanget: den konceptuella designen av en databas är allt kvalificering. Alla människor är unika, och inom informationssystemsområdet finns och utvecklas representationer av specifika människor.
Det är viktigt att bygga ett team av utvecklare, inte några mytiska databasdesignsteg som föreslagits av en auktoritativ expert. Denna specialists auktoritet bildades på grundval av specifika verk, vid en viss tidpunkt. Arbete måste göras idag, ny uppgift, modern utrustning, ny teknik, …
Möjlig omvänd. Det finns Excel och Access och "rikligt" data i dessa format från forntida tider, när Windows for Workgoups fortfarande levde och mådde. Delvis återstod dBase och Quattro-data. Idag har dessa ord redan glömts bort, men informationenkvar, det är efterfrågat och måste utvinnas och formas nya idéer.
Gamm alt och nytt: kunskapsbalans
Molnteknik är inte som databaserna som Ashton-Tate gjorde. Det Oracle en gång köpte är inte på något sätt jämförbart med vad det gör idag. Men variabler, algoritmer, funktioner, loopar och villkor har funnits kvar i programmeringen sedan det tidiga 80-talet. Såvida inte konceptet med förfarandet har sjunkit i glömska och allt förblir som det var i forna tider.
Även moderna idéer om objektorienterad programmering är klädda i de klassiska syntaktiska och semantiska "bojorna" från förra seklet.
Vad man ska göra - programmering är tröghet, och formaliseringen av information och utformningen av informationsdatabaser är mer en process än ett resultat. Etapparbete är en förutsättning för att nå resultat. Men vem räknade antalet iterationer från mellanstadierna nästan till början av arbetet?
Information är alltid dynamisk, ingenting står stilla: speciellt ämnesområdet för uppgiften och användarkrav. Varje avslutat steg i arbetet låter dig utvärdera på en ny nivå vad som redan har gjorts och vad som återstår att göra.
Att överväga att designa en databasstruktur som en uppgift och få det slutliga resultatet är meningslöst. Så fort databasen tagits i drift kommer säkert en ny idé att dyka upp, även om verktyget för att skapa databasen var "enkelt" Excel, och inte en fantastiskt kraftfull och mångsidig produkt från Oracle,manipulerar miljontals transaktioner, hundratusentals samtidiga användare och terabyte med information.
Prioriteten är inte strukturen på databasen, utan bildandet av ett kvalificerat team av specialister, plus det obligatoriska kravet på större dynamik i resultatet, så att det efter avslutat arbete inte skulle vara nödvändigt att kontakta utvecklarna, minst ett par månader.
Sekventiell utveckling och/eller höjdhopp
Windows är inte en databas, men den har en relik - registret. Hosts-filen är helt enkelt en identifiering av den lokala maskinens IP-adresser och symboliska namn. Men genom denna fil bildas informationsflöden från olika domäner eller till olika DBMS.
Det är möjligt att förstå det mångsidiga Windows som en fungerande dator eller server, men det kommer inte att fungera på något sätt för att motivera logiken i versionerna av denna produkt. PHP är inte heller en databas, men utvecklarnas argument för varför version 5 direkt följer efter version 7 är inkonsekventa. PHP är ett MySQL-åtkomstverktyg, dess syntax definierar hur man skapar frågor och får svar från databasen med hjälp av SQL-dialekten.
Exempel på inkompatibilitet mellan moderna programmeringsverktyg och databasstöd har blivit normen de senaste åren, men detta är inte det mest originella. Vad kommer att ligga bakom versionen av Windows 10? Vilka är utsikterna för Oracle Database 12c?
Information om utvecklaren-författaren: Oracle Database 11g Express Edition (Oracle Database XE) är ett DBMS på ingångsnivå baserat på Oracle Database 11g Release 2 DBMS-koden. Denna DBMS är gratis för utveckling,distribution och försäljning, snabb nedladdning och enkel att administrera.”
En användarutvecklares perspektiv: "2013 släppte Oracle Oracle Database 12c (version 12.1.0.1) med viktiga fördelar av lägre lagringskostnader, hög datatillgänglighet, enkel databaskonsolidering och dataåtkomstskydd "".
Real Practice: En objektiv, effektiv och effektiv logisk databasdesign är endast tillgänglig för ett team av kvalificerade utvecklare. Att få ett fungerande resultat är inte svårt, det är svårt att formalisera de inkommande informationsflödena och bestämma den optimala grunden.
Till en värld av släta former från exakta rektanglar
Med tillkomsten av objektorienterad programmering har dataserialisering fått ett nytt liv. Allt runt omkring är faktiskt bara linjer, helst av obestämd längd. Siffror och datum är också teckensträngar.
Kraften och objektiviteten i relationsrelationer är obestridlig, men skadar dynamiken i kolumner och rader deras rykte? En tabell är helt enkelt data som kan ha en rubrik (en lista med kolumner) eller inga rader. Låt tabellen bara vara en samling data, inte nödvändigtvis namngiven.
Datauppsättningen kan vara heterogen och du kan hitta data med olika struktur i den. I grund och botten indikerar homogeniteten i uppgifterna utvecklingen av omfattningen. Fördelningen av data efter typer och arter är ett tecken på ett systematiskt och objektivt tillvägagångssätt, men det är ändå tillrådligt att erkänna möjligheten till strukturdynamik.
Om utmatningdesigna och skapa en databas bortom stela strukturer och anta att en tabell är en samling rader som inte nödvändigtvis är av samma typ och liknande varandra i semantik, då kommer databasdesignen att förändras dramatiskt.
Ämnet för arbetet kommer inte att vara en beskrivning av databasstrukturen, utan dynamiken i informationsrörelsen. Arbetets stadier kommer att delas in i tre tyngdpunkter:
- inmatningsinformationsflöde;
- transformation och förflyttning av information i databasen;
- välj data att använda.
Det finns inget koncept för tabellstruktur. Det finns inga rader eller kolumner. Det finns en abstraktion - en given, av en viss struktur, som uppfyller en specifik punkt i algoritmen. Mer specifikt kräver informationsbehandlingsfunktionen viss information i ett visst belopp.
Det obligatoriska kravet på rekursivitet för alla informationsbehandlingsfunktioner och fokus på funktioner, inte data, gör att du kan designa en databas i dynamiken i den ackumulerade informationen och inkommande dataflödet, som används på användarens initiativ, process eller annan funktion.
Faktum är att en användningssignal kom, en hämtningsförfrågan togs emot, en trigger i applikationen aktiverades och den inkommande informationen, genom det som redan fanns där, gav den önskade lösningen.
Fundamental kunskap och stela konstruktioner
Kunskap är människans privilegium, program är datorernas börda. Utvecklaren är fri att tillämpa kunskap som han finner lämpligt i en viss situation. En vanlig människa använder många databaser, utan att lägga vikt vid det. på vilket sättdatabaser är organiserade i huvudet på en vanlig människa, ingen vet, men alla vet hur han bedriver sin verksamhet, där han skriver ner vad han hittar och när han behöver använda det.
Resultatet av programmerarens arbete - på nivån för ett program i "Basic", som hämtar data från webbplatsen för en onlinebutik via ODBC, motsvarar en titulerad Oracle-utvecklare som gör en begäran om att hämta data från MAKS Aviation and Space Salon. Båda resultaten "fryser" i statiskt från det ögonblick då arbetet är slutfört. Detta är inte aktiv kunskap som en person använder, detta är hemligheten med att skapa ett databasdesignsystem.
Algorithmen kan inte fixas. Allt måste definieras dynamiskt. Fördelarna med kvalificerade utvecklare är obestridliga, men de ligger inte alls i de eleganta formerna av lösningar från Oracle, MySQL eller Access, som är begränsade i sina möjligheter. Ett annat Excel-kalkylblad kan ge dynamiskt innehåll och inte kräva att en programmerare deltar under mer eller mindre anständig tid efter avslutat arbete.
Frågan är hur väl dynamiken i applikationsområdet är formaliserad, inte strukturen i databasen.
Live Solutions
Det är omöjligt att planera arbetet på ett sådant sätt att det knyter ett team av professionella utvecklare till en uppgift. Inte för att laget blev kränkt, men det här är inte rätt tillvägagångssätt.
Uppgiften att designa en databas bör formuleras på ett sådant sätt att den utvecklade funktionaliteten skulle förbättra sig själv, ackumulera kunskap och, i utförandet av sina "uppgifter", inte utgå från koden,skapad av experter, men från den kunskap som förvärvats genom denna kod.