Windows.  Virus.  Bärbara datorer.  Internet.  Kontor.  Verktyg.  Förare

  • Utveckling för Android,
  • SQLite
    • Handledning
    • Återställningsläge

    Hej alla! Mitt namn är Oleg och jag är en amatör Android-programmerare. Amatör eftersom just nu Jag tjänar pengar på att programmera i en helt annan riktning. Och det här är en hobby som jag ägnar min ledig tid. Tyvärr känner jag inga Android-programmerare och jag får all min grundläggande kunskap antingen från böcker eller från Internet. I alla böcker och artiklar på Internet som jag läser, ägnar det väldigt lite utrymme att skapa en databas för en applikation, och i själva verket handlar hela beskrivningen om att skapa en klass som är en arvtagare SQLiteOpenHelper och efterföljande implementering av SQL-kod i Java-kod. Förutom det faktum att vi får dåligt läsbar kod (och om mer än 10 tabeller visas i vår applikation, då är det ett helvete att komma ihåg alla dessa relationer mellan tabeller), så kan vi i princip leva, naturligtvis, men på något sätt vill vi inte till.
    Jag glömde säga det viktigaste, man kan säga att det här är mitt första försök att skriva här. Och så låt oss gå.

    OM evig fråga: Varför?

    För att vara ärlig så vet jag ärligt talat inte varför böcker och artiklar om programmering för Android inte beskriver verktyg för att designa databasarkitektur och vissa mönster för att arbeta med databaser i det skede de skapades. Det verkar lätt att bara lägga till ett par sidor i en bok eller skriva en separat artikel (som jag gör nu) - men nej. I den här artikeln kommer jag kort att gå igenom de verktyg som jag använder i mitt arbete och mer detaljerat om koden som är ansvarig för det initiala skapandet av databasen, som ur min synvinkel ser mer läsbar och bekväm ut.


    Om vår applikation har fler än 5 tabeller, skulle det inte vara en dålig idé att använda något verktyg för visuell design databasarkitektur. Eftersom detta är en hobby för mig använder jag ett helt gratis verktyg som heter Oracle SQL Developer Data Modeler (du kan ladda ner det).

    Detta program låter dig rita tabeller visuellt och bygga relationer med dem. Många designmisstag för databasarkitektur kan undvikas med denna designmetod (jag berättar redan detta för dig som en professionell databasprogrammerare). Det ser ut ungefär så här:

    Efter att ha designat själva arkitekturen går vi vidare till den mer tråkiga delen, som består av sql-skapelser kod för att skapa tabeller. För att hjälpa till med detta problem använder jag redan ett verktyg som heter SQLiteStudio (som i sin tur kan laddas ner här).

    Detta verktygär en analog till sådana kända produkter som SQL Navigator, Toad etc. Men som namnet antyder är den designad för att fungera med SQLite. Det låter dig skapa en databas visuellt och få DDL-koden för de skapade tabellerna. Den låter dig förresten också skapa Views, som du även kan använda i din applikation om du vill. Jag vet inte hur mycket rätt tillvägagångssätt använder vyer i Android-program, men i en av mina applikationer använde jag dem.

    Faktum är att jag inte längre använder några tredjepartsverktyg, och sedan börjar magin med Android Studio. Som jag skrev ovan, om vi börjar implementera SQL-kod i Java-kod, är utdata vi kommer att få dåligt läsbar, och därför dåligt utbyggbar, kod. Så jag tål allt SQL-satser till externa filer som finns i min katalog tillgångar. I Android Studio ser det ut ungefär så här:


    Om db och datakataloger

    Inne i katalogen tillgångar Jag skapade två kataloger db_01 Och data_01. Numren i katalognamnen motsvarar versionsnumret på min databas som jag arbetar med. I katalogen db Jag lagrar SQL-skripten för att själva skapa tabeller. Och i katalogen data De data som behövs för den initiala fyllningen av tabeller lagras.


    Låt oss nu titta på koden inuti min DBHelper som jag använder i mina projekt. Först, klassvariablerna och konstruktorn (inga överraskningar här):

    Private static final String TAG = "RoadMap4.DBHelper";
    Sträng mDb = "db_"; String mData = "data_"; Kontext mContext;

    int mVersion; public DBHelper(Kontext kontext, strängnamn, int version) (super(kontext, namn, null, version); mContext = kontext; mVersion = version; ) Nu metoden hm: dataSQL)( för (strängtabell: hm.keySet())( Log.d(TAG, "insert into " + table + " " + hm.get(table)); long rowId = db.insert(table, null, hm.get(tabell));
    Logiskt är den uppdelad i två cykler, i den första cykeln får jag en lista med SQL-instruktioner för att skapa en databas och sedan exekvera dem, i den andra cykeln fyller jag redan de tidigare skapade tabellerna med initiala data. Så, steg ett:

    Privat ArrayList getSQLTables() (ArrayList tabeller = ny ArrayList<>(); ArrayList<>filer = ny ArrayList
    (); AssetManager assetManager = mContext.getAssets(); String dir = mDb + mVersion;

    prova ( String listFiles = assetManager.list(dir); för (String file: listFiles)( files.add(file); ) Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; Stringfråga; Stränglinje; för (Strängfil: filer)( Log.d(TAG, "fil db är " + fil); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + fil))); query = ""; while ((line = bufferedReader.readLine()) != null)( query = query + line; ) bufferedReader.close( tables.add(query) ) catch (IOException e) ( e.printStackTrace(); ) return); bord; )
    Allt är ganska enkelt här, vi läser helt enkelt innehållet i filerna och sammanfogar innehållet i varje fil till ett arrayelement. Observera att jag sorterar listan med filer, eftersom tabeller kan ha främmande nycklar, vilket innebär att tabeller måste skapas i en viss ordning. Jag använder numrering i namnen på filerna, och med hjälp av den sorterar jag.


    Privatklass QueryFilesComparator implementerar Comparator

    ( @Override public int compare(String file1, String file2) ( Heltal f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0, 2)); return f2 .compareTo(f1);
    Att fylla i tabellerna gör det roligare och roligare. Mina tabeller är fyllda inte bara med hårdkodade värden, utan också med värden från resurser och UUID-nycklar (jag hoppas att någon gång komma till

    nätverksversion
    mitt program så att mina användare kan arbeta med delad data). Strukturen för filerna med de ursprungliga uppgifterna ser ut så här:
    Trots att mina filer har sql-tillägget finns det ingen sql-kod inuti, utan något så här:
    Prioriteringar
    Att fylla i tabellerna gör det roligare och roligare. Mina tabeller är fyllda inte bara med hårdkodade värden, utan också med värden från resurser och UUID-nycklar (jag hoppas att någon gång komma till
    pri_id:UUID:UUID
    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    Prioriteringar
    Att fylla i tabellerna gör det roligare och roligare. Mina tabeller är fyllda inte bara med hårdkodade värden, utan också med värden från resurser och UUID-nycklar (jag hoppas att någon gång komma till
    pri_id:UUID:UUID
    prioriteringar
    pri_object:string:object_task
    pri_default:int:1
    Prioriteringar
    Att fylla i tabellerna gör det roligare och roligare. Mina tabeller är fyllda inte bara med hårdkodade värden, utan också med värden från resurser och UUID-nycklar (jag hoppas att någon gång komma till

    nätverksversion
    mitt program så att mina användare kan arbeta med delad data). Strukturen för filerna med de ursprungliga uppgifterna ser ut så här:
    Trots att mina filer har sql-tillägget finns det ingen sql-kod inuti, utan något så här:
    Prioriteringar
    Att fylla i tabellerna gör det roligare och roligare. Mina tabeller är fyllda inte bara med hårdkodade värden, utan också med värden från resurser och UUID-nycklar (jag hoppas att någon gång komma till
    pri_name:string:hold
    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    Prioriteringar
    Att fylla i tabellerna gör det roligare och roligare. Mina tabeller är fyllda inte bara med hårdkodade värden, utan också med värden från resurser och UUID-nycklar (jag hoppas att någon gång komma till
    pri_name:string:hold
    prioriteringar
    pri_object:string:object_task
    pri_default:int:1

    Filstrukturen är så här: Jag gör ett funktionsanrop split(":") i förhållande till en rad och om jag får att dess storlek är 1, så betyder detta namnet på tabellen där data ska skrivas. Annars är det själva data. Det första fältet är namnet på fältet i tabellen. Det andra fältet är den typ med vilken jag bestämmer vad jag behöver skriva i just detta fält. Om det är ett UUID betyder det att jag måste generera ett unikt UUID-värde. Om sträng betyder att jag måste extrahera ett strängvärde från resurserna. Om färg, då återigen, måste du extrahera färgkoden från resurserna. Om int eller text, så konverterar jag helt enkelt detta värde till int eller String utan några fysiska rörelser. Själva koden ser ut så här:

    Privat ArrayList > getSQLDatas() (ArrayList > data = ny ArrayList<>(); ArrayList<>(); AssetManager assetManager = mContext.getAssets();<>String dir = mData + mVersion;

    prova ( String listFiles = assetManager.list(dir); för (String file: listFiles)( files.add(file); ) Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String line; int separator = 0 ; ContentValues ​​cv = null String nameTable = null String packageName = mContext.getPackageName();

    hm; för (Strängfil: filer)( Log.d(TAG, "fil db är " + fil); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + fil))); while ((rad = bufferedReader.readLine()) != null)( fields = line.trim().split(":"); if (fields.length == 1)( if (flagga == true)( hm = new HashMap

    (); hm.put(namntabell, cv); data.add(hm);, ansvarig för att skapa, redigera, ta bort och allmänt lagra databaser (DB) eller samlingar av dataposter.

    DBMS funktioner:

    1.Definition av struktur skapade bas data, dess initialisering och initialladdning.

    2. Ge användare möjligheten att manipulera data (välja nödvändiga data, utföra beräkningar, utveckla ett ingångs-/utgångsgränssnitt, visualisering).

    3. Säkerställa logisk och fysisk dataoberoende.

    4. Skydda databasens logiska integritet.

    5. Skydd av fysisk integritet.

    6. Hantera användarbehörigheter för att komma åt databasen.

    7. Synkronisering av flera användares arbete.

    8. Lagringsmiljö resurshantering.

    9. Stöd till systempersonalens verksamhet.

    Kapitel 1

    1.1. Typer av DBMS:

    Relationellt

    Relationella DBMS är den vanligaste typen av databashanteringssystem för tillfället. De är verkligen lätta att använda. Relationella DBMS har detta namn eftersom... de lagrar beställd data i tabeller. Relationsmodellen bygger på att lagra ordnad data i kolumner och rader. Data kan länkas inom samma tabell eller olika bord. Typer av relationellaDBMS kan sakna prestanda jämfört med andra typer av databashanteringssystem, men de har inte processorkraft och minnessökningsproblem som moderna datorer. Data i denna typ av DBMS lagras i en exakt definierad form, och de hanteras vanligtvis med hjälp av programmeringsspråket SQL (Structured Query Language). Du kan också ange de mest populära typerna av DBMS - Oracle, MSSqlServer, IBMDB2, PostgreSQL och många andra.

    Platta fildatabashanteringssystem

    FlatFile DBMS är kanske det enklaste av alla. De kallas också ibland för en platt modell. Tanken är att starta en enda applikation som innehåller programinställningarna och det ursprungliga lagringsmodellformatet. Platta filer i formaterade rader och kolumner förutsätter att varje element i specifik modell innehåller samma information. Ett välkänt exempel på denna typ av DBMS är CSV (Comma Separated Values) och ett annat är tabeller som MS Excel.

    Hierarkisk

    Hierarkiska DBMS är baserade på släktträdsmodellen. Här har elementen oftast en en-till-många-relation och det är bra att lagra information med en beskrivning av elementen, egenskaper m.m. Här kan du förvara en bok med kapitel och verser. Hierarkiska typerDBMS kan användas för att lagra databaser med låtar, recept, telefonmodeller och i allmänhet allt som kan lagras i ett kapslat format. Hierarkiska synpunkter Databashanteringssystem kan vara sämre i effektivitet när man arbetar med olika verkliga objekt. Ett exempel på hierarkiska DBMS-typer är ett XML-dokument.

    Nätverk

    Nätverkssystem Databashantering använder en datamodell som liknar en hierarkisk. Den största skillnaden är att strukturen i ett nätverk DBMS tillåter många föräldrar för många barn. Nätverkstyper av DBMS baseras på poster och uppsättningar och använder SQL för sitt arbete. Nätverksbaserade databashanteringssystem tenderar att vara mycket flexibla, men de användes sällan efter 1960- och 1970-talen. På jakt efter det nödvändiga elementet går det begärande programmet igenom allt installerade element, vilket kan vara för krångligt. Denna typ Databashanteringssystem har praktiskt taget ersatts av relationella.

    Att välja ett program för att skriva en databas

    I hans kursarbete Jag använde en relationsdatabas med hjälp av Microsoft program Tillträde.

    Microsoft Access – en av de mest populära DBMS för operativsystem Microsoft Windows. Dessutom, Få åtkomst till DBMSär en kraftfull utvecklingsplattform med en flexibel och funktionell integrerad miljö. Microsoft Access kan användas som ett verktyg för att utveckla och distribuera brett baserade affärsinformationssystem.

    Access använder följande huvudfältstyper:

    text: avsedd för textinformation och siffror när det inte finns något behov av att utföra matematiska operationer med dem;

    numerisk: avsedd för siffror när de används i matematiska beräkningar;

    PM: utformad för att lagra godtycklig text eller kommentarer (upp till 64 000 tecken långa);

    monetär: utformad för att lagra siffror som representerar monetära belopp;

    datum/tid: utformad för att lagra information om datum och tid;

    disk: ett speciellt numeriskt fält utformat för att läggas till automatiskt unikt nummer aktuell post i datatabellen.

    logisk: designad för att lagra endast två värden "True" och "False";

    fält OLE-objekt : avsedd för lagring av objekt skapade av andra applikationer (ritningar, grafer, diagram).

    I Microsoft Access finns det flera sätt att välja endast de data du behöver när du söker efter ett specifikt värde, en enskild post eller en grupp av poster.

    Använda dialogrutan Sök lätt att hitta specifika poster eller vissa värden i fälten. När varje förekomst av det nödvändiga elementet hittas flyttas det genom posterna. Om du behöver ersätta specifika värden som hittats under sökningen bör du använda dialogrutan"Ersättning".

    Förfrågningar gör det möjligt att arbeta med en specifik uppsättning poster som uppfyller de villkor som anges för en eller flera databastabeller. När du kör en fråga blir det möjligt att arbeta självständigt med denna uppsättning poster i ett specifikt formulär eller objekt i tabellvyn.

    Sortering gör det möjligt att ordna rader i en tabell enligt innehållet i en eller flera kolumner. För att sortera, välj det fält efter vilket sorteringen ska utföras och klicka på knappen "Sortera stigande" eller "Sortera fallande" i verktygsfältet.

    Filtrering låter dig tillfälligt isolera och visa en specifik uppsättning poster som uppfyller vissa villkor. För att filtrera, välj den data du vill filtrera efter och klicka på knappen "Filter efter valda" i verktygsfältet. För att byta filter, använd knappen "Ändra filter". För att ställa in mer detaljerade villkor För att filtrera i "Record"-menyn, använd kommandot "Filter" och underkommandot "Advanced filter". För att använda ett vanligt eller avancerat filter, använd knappen "Använd filter" i verktygsfältet.

    Kapitel 2

    Redogörelse för problemet

    Syftet med hotelldatabasen är att automatisera processen för redovisning och analys av hotelldata.

    Uppgifter lösta när du använder databasen:

    Lagring och hämtning av data om hotellanställda;

    Lagra och hämta information om hotellkunder;

    Lagra och hämta information om nummer;

    Lagring av data om bokningar, incheckning, utcheckning av kunder och beräkning av betalning för boende

    Beräkning och analys av information om mottagande av betalning för boende från företagets kunder;

    Sök information om huvudposterna: bokade rum, incheckning för perioden, utcheckning för perioden.

    Skapa en databas

    För att skapa en MS Access-databas användes Tabelldesignern, som låter dig bestämma vilken tabellstruktur som krävs.

    För att visa fullständig information om hotellets skick, verksamhetsområdena och rapportering om utfört arbete har följande tabeller skapats:

    1. "Anställda"

    Tabellen har följande fält: anställds kod(nyckelfält) - datatyp: räknare; efternamn, förnamn, patronym– datatyp: text, storlek – 50, valfritt, inga matchningar tillåtna; födelsedatum–datatyp: datum\tid, valfritt; utbildning– datatyp: substitution master – fast datamängd (högre, sekundär); jobbtitel–master of substitutions (lista över tillgängliga positioner); adress– datatyp: text, storlek-50, valfritt; telefon– datatyp: numerisk, valfritt fält; lön– datatyp: monetär, fältformat – rubel, valfritt. Tabellen i designläge ser ut så här:

    2. "Positioner"

    Det här bordet har följande fält: jobbkod– räknare (nyckelfält); jobbtitel– datatyp: text (uppsättning huvudpositioner).

    3. "Siffror"

    Den här tabellen har följande fält: nummerkod– Datatypräknare (nyckelfält). kategori– datatyp: master of settings (enkel, dubbel, juniorsvit, lyx)

    Fält: kategorikod– datatyp: räknare (nyckelfält), antal– text; kategori– master of substitutions (siffror). antal platser– datatyp: numeriskt långt heltal, valfritt; antal rum– liknande; ytterligare information – datatyp: MEMO; kostnad per dag– datatyp: monetär, format – rubel, valfritt.

    5. "Nummerstatus"

    Fält: nummerkod– räknare, nyckelfält; antal- ersättningsmaterial för datatyp (liknande fält från tabellen "Rumskategorier"); anställd(maid) - ersättningsmästare (från en fråga i tabellen "anställda", med urvalsvillkoret "piga"), fält - reservation, incheckning, utcheckning– datatyp: datum\tid, valfritt fält; klient – ​​substitutionsmaster (från tabellen "Kunder").

    6. "Kunder"

    Fält: klientkod efternamn, förnamn, patronym– datatyp: text, fältstorlek - 50, obligatorisk; födelsedatum- datatyp: datum\tid, obligatorisk; golv- produktionsmästare (man, fru); typ av dokument– produktionschef (pass, militärlicens, identitetskort), obligatorisk; serie- text, obligatorisk; antal– numerisk, obligatorisk; utfärdat av– text, fältstorlek – 50, obligatoriskt, utfärdandedatum– datum/tid krävs.

    Fält: barnkod– datatyp: räknare (nyckelfält); klientkod– datatyp: ersättningsguide (ett liknande fält från tabellen ”klienter”); efternamn, förnamn, patronym– datatyp: text, fältstorlek – 50; födelsedatum– datatyp: datum\tid.

    Dataschemat ser ut så här:

    Tabellerna Rumsstatus och Anställda är länkade genom en förfrågan om Anställda, med urvalsvillkoret "pika".

    För att underlätta användningen har frågor skapats för Hotelldatabasen.

    Begäran nr 1 – "Reservation"

    På raden Urvalsvillkor anges följande villkor:

    >=[s] Och<=[по]

    Det betyder val av fält för en viss tidsperiod.

    Frågorna 2 och 3 skapades på liknande sätt.

    Begäran nr 2 - "Checka in på rummen"

    Begäran nr 3 – "Utcheckning av rum"

    Begäran nr 4 – "Kunder med barn."

    Frågan i designläge ser ut så här:

    Denna begäran systematiserar information om huruvida kunder har barn, vilket är nödvändigt för vissa rabatter, förmåner etc.

    Begäran nr 5 – "Betalning för boende."

    Begäran innehåller ett uttryck som återspeglar beräkningen av levnadskostnaden för varje klient.

    Begäran nr 6 – "Betalad för månaden."

    Begäran innehåller ett uttryck som återspeglar beräkningen av levnadskostnaderna för varje kund:

    Betalning för boende: (Room_state. Check-out - Room_state. Check-in + 1)*Room_categories [Kostnad per dag].

    Samt att välja fält för perioden.

    Begäran nr 7 – "Betalning för schemat."

    Liknar begäran 6, förutom att välja period för val av fält. Baserat på data från denna fråga byggs diagram för analys, såväl som pivottabeller.

    Begäran nr 8 – ”Befattningsbegäran”.

    Begäran med urvalsvillkoret för anställda "piga". Används för att ersätta data i Nummerstatustabellen.

    Att skapa dessa frågor förenklar hotellrapporteringen avsevärt, systematiserar information bekvämt och gör att du snabbt kan använda den och göra ändringar. Listan över förfrågningar presenteras nedan:

    Rapporterna är följande:

    Arbetet med databasen börjar med att öppna Hotellformuläret:

    Till vänster finns knappar för att öppna rapporter, till höger för att mata in och visa data om huvudpositioner.

    Till exempel ser formuläret Rumsinformation ut så här:

    Här kan du se all information om hotellrummet, samt en lista över alla rum När jag väljer en position kan vi direkt se all information om rummet. I det nedre vänstra hörnet finns knappar för att enkelt arbeta med skivor. Uppe till höger finns en knapp för att öppna formuläret Ange rumskategori.

    Genom att använda knappen Bokning Incheckning Utcheckning öppnar vi formuläret:

    Som har tre flikar:

    Rumsinformation – fullständig information om tillgängliga rum;

    Dynamik för kvitton – dynamik för kvitton efter nummer:

    Betalningsöversikt – sammanställning av betalning per rum:

    Knappen Hotellanställda öppnar följande formulär:

    Här kan du se information om anställda och ange nödvändig information.

    Med hjälp av visning av rapporter löses uppgifterna med att söka information om rums status: bokning, incheckning, utcheckning, samt reflektera betalningsinformation och visa upp ett kvitto för kunden.

    Således löser denna databas de tilldelade uppgifterna.

    Slutsats

    Under kursarbetet skapades databasen ”Hotell”. Denna databas är avsedd för anställda eftersom den förenklar kundserviceprocessen.

    Denna databas innehåller: tabeller, frågor, formulär och rapporter, samt ett autorun-fönster för enkel användning.

    Litteratur:

    1. Date, K., J. Introduktion till databassystem. 6:e uppl. - TO.; M., St. Petersburg: "Williams", 2000. – 848 sid.

    2. Khomonenko A.D., Tsygankov V.M., Maltsev M.G. Databaser: Lärobok för lärosäten/Ed. prof. HELVETE. Khomonenko. – St Petersburg: CORONA-tryck, 2002. – 672 s.

    3. V.V. Korneev, A.F. Gareev, S.V. Vasyutin, V.V. Reichs databaser. Intelligent informationsbehandling. – M.: Kunskap, 2001.- 496 sid.

    4. Prag K., Irwin M., "Access User Bible for Windows 2000", K.: Dialectics, 2001 – 576 s..

    5. Garnaev A.S., "VBA Self-Teacher", St Petersburg, 1999. – 104 sid.

    6. Microsoft Access 2010. Applikationsutveckling med ett verkligt exempel - G. Gurvits - 496p.

    7. Databasdesign. Microsoft Access DBMS. Lärobok - N. N. Grinchenko, E. V. Gusev, N. P. Makarov - 240 s.

    8. Access 2007. Effektiv användning - V. E. Koshelev - 590 s.

  • MySQL
  • Många företag skapar olika funktionsrika applikationer för att underlätta databashantering, utveckling och administration.

    De flesta relationsdatabaser, med undantag för MS Access, består av två separata komponenter: en "back-end" där data lagras och en "front-end" - användargränssnittet för att interagera med datan. Denna typ av design är ganska smart eftersom den parallelliserar en tvålagers programmeringsmodell som skiljer datalagret från användargränssnittet och låter mjukvarumarknaden fokusera direkt på att förbättra sina produkter. Denna modell öppnar dörren för tredje part att bygga sina egna applikationer för att interagera med olika databaser.

    På Internet kan vem som helst hitta många produkter för att utveckla och administrera MySQL-databaser. Vi bestämde oss för att samla de 10 mest populära verktygen i en artikel så att du kan spara tid.

    1.Arbetsbänk

    Förstaplatsen tillhör med rätta verktyget Workbench (utvecklat av Sun Systems/Oracle), som kan köras på Microsoft Windows, Mac OS X och Linux-plattformar. Workbench kombinerar databasutveckling och administration och är efterföljaren till DBDesigner4.

    MySQL Workbench distribueras under en gratis licens - Community Edition och med en årlig betalprenumeration - Standard Edition. Det senare innehåller ytterligare funktioner som avsevärt kan förbättra produktiviteten för både utvecklare och databasadministratörer.

    Kostnaden är gratis.

    Vad gör Workbench populär?

    • förmågan att presentera databasmodellen i grafisk form, samt redigera data i en tabell;
    • närvaron av en enkel och funktionell mekanism för att skapa relationer mellan tabellfält, bland vilka en "många-till-många"-relation implementeras med förmågan att skapa en tabell med relationer;
    • funktionen Reverse Engineering låter dig återställa strukturen för tabeller och relationer från den som implementerades tidigare och lagrades på databasservern;
    • närvaron av en SQL-frågeredigerare, som gör det möjligt, när det skickas till servern, att ta emot ett svar i tabellform och andra funktioner.

    2. Navigat

    Andra plats Navicat(utvecklat av PremiumSoft CyberTech Ltd) är ett verktyg för att utveckla och administrera databaser som körs på valfri MySQL-server från och med version 3.21. För MySQL är Navicat tillgängligt för att köras på Microsoft Windows, Mac OS X och Linux-plattformar.

    Produktpriserna sträcker sig från $199 till $379.

    Vad gör Navicat populär?

    • Tillgänglighet för en visuell frågedesigner;
    • möjligheten att importera, exportera och säkerhetskopiera data;
    • förmåga att skapa rapporter;
    • SSH och HTTP-tunnling;
    • migrering och synkronisering av data och struktur;
    • uppgiftsschemaläggningsverktyg och andra funktioner.

    3. PHPMyAdmin

    PHPMyAdminär en gratis applikation med öppen källkod designad för att administrera MySQL DBMS. PHPMyAdmin är ett webbgränssnitt med vilket du kan administrera MySQL-servern, köra kommandon och se innehållet i tabeller och databaser via en webbläsare.

    Kostnaden är gratis.

    Vad gör PHPMyAdmin populärt?

    • förmågan att hantera MySQL DBMS utan att direkt ange SQL-kommandon;
    • som kontrollpanel tillhandahåller PHPMyAdmin möjligheten att administrera dedikerade databaser;
    • intensiv utveckling;
    • möjligheten att integrera PHPMyAdmin i din egen utveckling tack vare GNU General Public License och andra funktioner.

    4. dbForge Studio för MySQL

    dbForge Studio för MySQL- ett verktyg av intresse för både MySQL-användare och databasutvecklare. Med dess hjälp kan du enkelt automatisera rutinarbete och spara tid. Idag finns dbForge Studio för MySQL i tre utgåvor: Express, Standard och Professional, vilket låter dig välja det verktyg du behöver. Du kan använda dbForge Studio för MySQL i både kommersiella och gratisversioner.

    Det finns både gratis och betalda versioner, med den senare prissatt till $49,95 (standardutgåva) och $99,99 (professionell utgåva).

    Vad gör dbForge Studio populär?

    • tillgång till medel för centraliserad administration;
    • verktyg för databasjämförelse;
    • visuell frågeprofilerare;
    • förmågan att hantera användarrättigheter;
    • tillgänglighet av en databasdesigner, som låter dig bygga visuella diagram;
    • förbättrat arbete med databasprojekt och andra funktioner.

    5.HeidiSQL

    HeidiSQLär ett gratis databashanteringsverktyg. Ett värdigt alternativ till PHPMyAdmin, som låter dig skapa och redigera tabeller, vyer, utlösare, procedurer, samt visa och redigera data. HeidiSQL ger också möjlighet att exportera data både till en SQL-fil och till urklipp på andra servrar.

    Kostnaden är gratis.

    Vad gör HeidiSQL populär?

    • möjligheten att ansluta till servern med hjälp av kommandoraden;
    • förmågan att batchoptimera och återställa tabeller;
    • förmågan att redigera kolumner, index och främmande nycklar för tabeller, redigera kroppen och parametrarna för SQL-procedurer, triggers, etc.;
    • enkel formatering av oordnad SQL;
    • tabellsynkronisering mellan olika databaser och andra funktioner.

    6. SQL Maestro för MySQL

    SQL Maestro för MySQL- ett verktyg för administration, utveckling och hantering av de mest populära DBMS. Ett bekvämt grafiskt gränssnitt gör det möjligt att köra SQL-frågor och skript, hantera användarrättigheter, exportera och skapa säkerhetskopior av data.

    Beroende på vald licens och användningsfall varierar kostnaden för detta verktyg från $99 till $1 949.

    Vad gör SQL Maestro för MySQL populärt?

    • stöd för MySQL-serverversioner från version 3.23;
    • Tillgänglighet för en databasdesigner;
    • förmågan att redigera, gruppera, sortera och filtrera data;
    • visuell frågebyggare;
    • SSH och HTTP-tunnling;
    • BLOB-redigerare och andra funktioner.

    7. EMS SQL Manager för MySQL

    EMS SQL Manager för MySQLär ett databasutvecklings- och administrationsverktyg som stöder olika MySQL-funktioner och fungerar med alla versioner av MySQL äldre än 3.23. Med dess hjälp har du möjlighet att visuellt redigera, importera och exportera databaser, köra SQL-skript, hantera användarprivilegier, visuellt designa MySQL-databaser.

    Det finns en betald och gratis version av applikationen. Den senare har ett antal funktionella begränsningar. Kostnaden för den betalda versionen varierar mellan 95 – 245 US-dollar.

    Vad gör EMS SQL Manager för MySQL populär?

    • UTF8-datastöd;
    • enkel hantering av olika MySQL-objekt;
    • kompatibel med alla versioner från 3.23 till och med 6.0;
    • Tillgänglighet av grafiska och textverktyg för generering av frågor;
    • SSH och HTTP-tunnling;
    • bekväm rapportdesigner och andra funktioner.

    8. SQLyog

    SQLyogär ett av de mest kraftfulla verktygen som kombinerar funktionerna hos MySQL Administrator, PHPMyAdmin och några andra verktyg för databasadministration och utveckling. SQLyog körs på Microsoft Windows, Windows NT-plattformar. och Linux med Wine.

    Det finns både gratis och betalda versioner av SQLyog tillgängliga. Betalversionen kostar från $99 till $1 499 (varierar beroende på antalet användare och licens, med eller utan support).

    Vad gör SQLyog populär?

    • bekväm frågebyggare;
    • möjlighet till datasynkronisering;
    • Unicode-stöd;
    • SSH och HTTP, HTTPS-tunnling;
    • "smart" automatisk avstängning;
    • intelligent kodkomplettering och andra funktioner.

    9. DBTools Manager

    DBTools Manager- en datahanteringsapplikation med inbyggt stöd för MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle och andra databaser. Plattformar som stöds: Windows 2000, XP, Vista, 7.

    DBTools Manager finns tillgänglig i gratis (Standard) och betalversioner (Enterprise). Kostnaden är $69,90 per licens, med rabatter vid köp av flera licenser.

    Du kan lära dig mer om och köpa DBTools Manager här

    Låt oss skapa en enkel databasapplikation som visar information från tabellen "Turister" och tabellposten "Turistinformation" från Microsoft Access-databasen som är kopplad till den aktuella posten för tabellen "Turister".

    För att göra detta, låt oss skapa ett tomt Windows-program. Miljö utseende

    utvecklingen visas i figur 39.

    Ris. 39. Tom ansökan

    Figur 39 visar komponentgruppen "Data", som innehåller komponenter för åtkomst till och manipulering av data.

    Bindningen av databasdata till formuläret utförs av komponenten "Bindande källa". Låt oss överföra det till formuläret. Efter att ha placerat den på formuläret tar utvecklingsmiljön följande form (Fig. 40).

    Ris. 40. Bindande källkomponent på formuläret

    Komponenten är inte visuell, så den visas i en extra panel. Komponentens huvudegenskap är DataSource-egenskapen, som pekar på datakällan. Som standard är egenskapen tom, så du måste konfigurera dess värde. När du väljer den här egenskapen i egenskapsfönstret visas följande fönster (bild 41).

    Ris. 41. Lista över datakällor

    Listan är för närvarande tom, så du måste skapa en ny datakälla genom att välja kommandot Lägg till projektdatakälla för att skapa en ny datakälla och ansluta till den. Följande dialogruta visas (Fig. 42).

    Ris. 42. Lista över datakällor

    Den här dialogrutan ger följande val av datakällor:

    Databas - Databas;

    Tjänst – En tjänst är en tjänst som tillhandahåller data. Oftast är detta en webbtjänst;

    Objekt - Objekt för att välja ett objekt som ska generera data och objekt att arbeta med det.

    I vårt fall måste du välja "Databas" -objektet. Ett fönster för att välja en dataanslutning visas (bild 43).

    Ris. 43. Välja en dataanslutning

    Syftet med den här dialogrutan är att skapa en anslutningssträng som beskriver anslutningsparametrarna för ADO-motorn, såsom databastyp, dess plats, användarnamn, säkerhetsfunktioner, etc.

    Den nedrullningsbara dialogrutan innehåller alla tidigare skapade anslutningar. Om den önskade anslutningen inte finns i listan, bör du använda knappen "Ny anslutning". Genom att trycka på knappen visas följande dialogruta (Fig. 44).

    I den här dialogrutan väljer du datakällans typ (i det här fallet Microsoft Access), databasnamnet (i det här fallet namnet och platsen för databasfilen) och användarnamnet och lösenordet som används för att ansluta till databasen. Med knappen "Avancerat" kan du ställa in ett stort antal parametrar relaterade till olika delar av ADO-motorn. Genom att använda knappen "Testa anslutning" säkerställs att de angivna parametrarna är korrekta och att anslutningen fungerar.

    Ris. 44. Skapa en ny anslutning

    Det sista steget i dialogen är att välja de tabeller eller andra databasobjekt som behövs i denna datakälla. Valfönstret visas i figur 45.

    Ris. 45. Välja nödvändiga tabeller

    I det här fönstret är tabellerna "Turister" och "Turistinformation" valda. Eftersom inga andra objekt än tabeller skapades i databasen, visas endast tabeller i figur 45. Detta slutför skapandet av datakällan. Efter att ha klickat på knappen "Slutför" visas en DataSet-komponent bredvid BindingSource-komponenten i formuläret.

    Nu måste ovanstående data visas på formuläret. Det enklaste sättet att visa data är att använda DataGridView-komponenten från Data-komponentgruppen. Komponenten är visuell och ser ut så här på formuläret (bild 46).

    Ris. 46. ​​DataGridView-komponent

    Fönstret för komponentinställningar visas omedelbart, vilket bestämmer dess dataredigeringsmöjligheter: "Aktivera tillägg", "Aktivera redigering", "Aktivera borttagning"; möjligheten att ändra sekvensen av kolumner: "Aktivera möjligheten att ändra ordningen på kolumner" ("Aktivera kolumnomordning"); samt möjligheten att fästas på föräldrabehållaren.

    För att komponenten ska visa data måste du välja en datakälla i rullgardinsmenyn. Om du väljer rullgardinslistan visas följande dialogruta (Fig. 47).

    Ris. 47. Välja en datakälla för DataGridView

    I det här fallet valde vi tabellen "Turister" som datakälla. Detta val ändrar skärmformen enligt följande (fig. 48).

    Ris. 48. DataGridView-komponenten visar tabellstrukturen

    Bilden visar att ytterligare en BindingSource-komponent och en TableAdapter-komponent har dykt upp, som arbetar med tabellen "Turists". Observera att under designtid eller under utvecklingsprocessen visas inte data från tabellen.

    Nu måste du visa data från den länkade tabellen "Turistinformation". För att göra detta, placera en annan DataGridView-komponent på formuläret och välj följande som datakälla (fig. 49).

    Ris. 49. Välja en datakälla för den andra DataGridView

    Här är datakällan inte själva tabellen "Turistinformation", utan kopplingen (bindande källa) mellan tabellerna "Turister" och "Turistinformation". Det här valet säkerställer att endast de rader från tabellen Turistinformation som är associerade med den aktuella raden i tabellen Turister väljs. Detta val säkerställer också att tillhörande data uppdateras och raderas korrekt. Funktionen för den resulterande applikationen visas i figur 50.

    Ris. 50. Databasapplikation på jobbet

    Att navigera genom data med piltangenterna är besvärligt. För att förenkla datanavigering finns det en BindingNavigator-komponent. Låt oss placera den på formuläret (bild 51).

    Ris. 51. BindingNavigator-komponenten på formuläret

    Denna komponent låter dig navigera mellan tabellposter, lägga till och ta bort tabellrader. Funktionaliteten och utseendet på komponenten kan anpassas eftersom det är en ToolStripContainer menyremsa.

    Egenskapen som bestämmer tabellen genom vilken navigering utförs är egenskapen BindingSource. Låt oss ställa in värdet på den här egenskapen till "touristsBindingSource". I drift ser komponenten ut så här (fig. 52).

    Ris. 52. BindingNavigator-komponenten på jobbet

    Det är möjligt att redigera data i cellerna i DataGridView-komponenten med lämpliga inställningar, men det är obekvämt och inte rationellt. I synnerhet är det svårt att kontrollera inmatade värden för fel. Därför kommer vi för tabellen "Turister" att skapa ett skärmformulär som låter dig visa data i TextBox-komponenter och redigera dem. För att göra detta, placera en behållare av typen Panel på formuläret och på den tre TextBox-komponenter enligt följande (Fig. 53).

    Ris. 53. Skärmpanel för redigering av poster i tabellen "Turister".

    Nu måste du binda TextBox-komponenterna till motsvarande fält i tabellen "Turister". För att göra detta använder vi egenskapen från gruppen DataBindings - Advanced, som visas i figur 54.

    Ris. 54. Egenskapen "DataBindings - Advanced"

    Att välja den här egenskapen leder till att dialogrutan som visas i figur 55 visas. Den här dialogrutan låter dig inte bara binda data, utan även ställa in en händelse inom vilken data ska uppdateras, samt formatera data när den matas ut.

    För den översta TextBox-komponenten, i rullgardinsmenyn Bindande, välj "touristsBmdmgSource" som datakälla och källfältet som "Efternamn". För de mittersta och nedre TextBox-komponenterna, välj samma datakälla och fälten "Namn" respektive "Patronym".

    Den utvecklade applikationen i drift ser ut så här (Fig. 56).

    Ris. 55. Dialogfönster för egenskapen “DataBindings - Advanced”.

    Ris. 56. Databindning till visuella komponenter

    Men när ändringar görs finns all ny data kvar endast på formuläret. De sparas inte i databasen och när applikationen anropas igen kommer de förstås att saknas. Detta beror på att data laddades in i ett DataSet-objekt, som är en kopia av tabellen i minnet. Alla åtgärder utförs med denna kopia. För att ändringar ska återspeglas i databasen måste du köra Update-metoden för klassen TableAdapter. Således, i applikationen som utvecklas, är det nödvändigt att placera knappen "Uppdatera" och skriva följande programkod i klickhändelsehanteraren:

    touristsTableAdapterUpdate(bDTur_firmDataSet); information_about_touristsTableAdapter.Update(bDTur_firmDataSet);

    Den här koden uppdaterar informationen i tabellerna för turister och turistinformation som tillhandahålls av datakällan. Observera att den här metoden är överbelastad och dess varianter låter dig uppdatera både en enskild tabellrad och en grupp av rader.



    Om du upptäcker ett fel markerar du ett textstycke och trycker på Ctrl+Enter
    DELA: