Du bruker truleg søkbare databasar mange gonger om dagen utan å tenkje så mykje over korleis dei er laga. Her skal vi byggje ein enkel database som kan brukast som bestemmingsnøkkel for fuglar. Når du jobbar med denne oppgåva, vil du få eit innblikk i korleis slike databasar kan byggjast opp.
Artsdatabase
Det finst millionar av artar på jorda. Alle har unike eigenskapar og kjenneteikn. I fleire tusen år har vi menneske jobba med å kartleggje artar, og jobben er langt frå ferdig. Etter at ein begynte å registrere innsamla data i databasar, har det blitt langt enklare å finne ut om ein har funne ein ny art, eller om han er registrert tidlegare.
I programmet vi skal skrive no, skal vi lage ein enkel artsdatabase der du lett kan søkje opp arten du ønskjer å artsbestemme.
Lagre data i filer
Viss vi vil lagre det som blir skrive i eit program, må vi få programmet til å skrive dette til ei fil på harddisken. Når vi lagar ein database, vil vi ikkje måtte leggje inn alle artar på nytt kvar gong vi køyrer programmet. Vi ønskjer heller ikkje å leggje inn programkoden på nytt kvar gong vi vil utvide databasen.
Det første vi skal lære, er derfor å få Python til å skrive direkte til ei fil på PC-en. Då må du opprette ei mappe og ei tekstfil slik det er beskrive nedanfor, før du går vidare.
Opprett ei mappe på nivået rett under C:\ på PC-en din. Kall ho til dømes Python-filer eller Artar.
Opprett ei tekstfil i Notisblokk (Notebook) med namnet Fuglar.txt, og lagre ho i mappa du har oppretta under C:\.
Før du køyrer programmet nedanfor, må du endre "c:\Artar\Fuglar.txt" slik at det stemmer med mappa du har lagra fila di i. For å finne den nøyaktige plasseringa til fila, kan du høgreklikke på ho i filutforskaren og velje Eigenskapar.
Legg programmet (Python-kodane) inn i eit Python-program, og lagre det. Du kan lagre Python-programmet i same mappe som tekstfila Fuglar.txt, men sidan koden i programmet uansett inneheld informasjon om plasseringa av tekstfila, er ikkje det viktig.
Prøv å køyre koden nedanfor i eit Python-program.
Opne tekstfila du laga. Viss du har gjort alt riktig, skal det no stå "Fuglar!" i fila.
Legg inn artar
Neste steg er å utvide programmet slik at vi kan leggje inn fugleartar som blir lagra i fila og er der neste gong vi ønskjer å leggje til ein fugl. Vi må òg bestemme kva kjenneteikn vi vil registrere. Det er desse kjenneteikna vi skal bruke når vi seinare søkjer opp fuglar i databasen.
I dette dømet held vi oss til fire kriterium (som nok er for lite i ein stor database): hovudfarge, brystfarge, nebbform og nebbfarge.
Du kan enkelt endre eller leggje til andre kjenneteikn seinare, til dømes fotfarge eller ryggfarge. Studer koden, og forsøk å forstå kva føremålet med dei ulike kommandoane er.
Bygg opp databasen
Legg inn to fugleartar, og kontrollar at dei blir skrivne korrekt til fila. Bruk deretter litt tid på å leggje inn fleire fugleartar.
Du legg sikkert merke til at tekstfila ikkje er så lett å lese. Det står ikkje spesifikt kva eigenskap dei ulike detaljane høyrer til. Det er fordi tekstfila ikkje er meint å skulle lesast av menneske, men av vårt neste program. Jo mindre forklarande tekst vi legg inn der, jo enklare er det å lage eit program som hentar ut data frå fila.
Søk i basen
Tenk deg at du er ute på tur og har observert ein fugl som du ikkje veit namnet på. Du noterer kjenneteikna og prøver databasen din for å finne namnet. Det er sjølvsagt mogleg å leite i tekstfila etter ein art med dei same kjenneteikna, men viss databasen inneheld veldig mange artar, vil dette ta tid. Vi lagar heller eit program som leiter for oss. Studer koden, og forsøk å forstå kva føremålet med dei ulike kommandoane er.
Obs! Legg merke til at du vel tal som står for dei opplysningane som ligg i databasen. Fire tal som 7,7,3,2 kan i ein database bety "Grøn,Brun,Lang,Gul", som i denne basen gir arten stokkand som resultat. Det er òg mogleg å velje "Veit ikkje". Då vil programmet foreslå artar som kan likne.
Dersom du vil bruke Trinket Python-editor
Sidan Trinket Python-editoren ikkje har tilgang til disken på PC-en, må kodane i tekstfila "Fuglar" leggjast inn i ei eiga fane i editoren for at programmet skal finnedei. Bruk "+" for å leggje til ei ny fane i Trinket Python-editoren.
Jobb med programmet, og test funksjonalitet
Lag programmet, og prøv å søkje opp artar ut frå fila du laga med det første programmet.
Finn du arten?
Får du fleire svar?
Kva kan du gjere dersom det blir for mange svar ut frå dei same kjenneteikna?
Kor mange artar og kjenneteikn bør registrerast i databasen før han blir funksjonell?
Fungerer søket viss du berre kjenner brystfargen og nebbforma?
Har det noko å seie om du til dømes skriv "tre" eller "3"?
Kva skjer viss nokon skriv mellomrom etter komma?
Byt søkjeprogram med ein medelev, og søk på ein art.
Får de treff?
Er kjenneteikna på artane klare nok?
Kan du leggje til eigenskapar for farge på føtene eller ryggfarge? Hugs å gjere endringar både i databasen og i koden for søket.
Kan du bruke programmet til å lage ein søkbar database for blomstrar, tre, fiskar eller anna?