Du bruker antakelig søkbare databaser mange ganger om dagen uten å tenke så mye over hvordan de er lagd. Her skal vi bygge en enkel database som kan brukes som bestemmelsesnøkkel for fugler. Når du jobber med denne oppgaven, vil du få et innblikk i hvordan slike databaser kan bygges opp.
Artsdatabase
Det finnes millioner av arter på jorda. Alle har sine unike egenskaper og kjennetegn. I flere tusen år har vi mennesker jobbet med å kartlegge arter, og jobben er langt fra ferdig. Etter at man begynte å registrere innsamlede data i databaser, har det blitt langt enklere å finne ut om man har funnet en ny art, eller om den er registrert tidligere.
I programmet vi skal skrive nå, skal vi lage en enkel artsdatabase der du lett kan søke opp arten du ønsker å artsbestemme.
Lagre data i filer
Hvis vi vil lagre det som skrives i et program, må vi få programmet til å skrive dette til en fil på harddisken. Når vi lager en database, vil vi ikke måtte legge inn alle arter på nytt hver gang vi kjører programmet. Vi ønsker heller ikke å legge inn programkoden på nytt hver gang vi vil utvide databasen.
Det første vi skal lære, er derfor å få Python til å skrive direkte til en fil på PC-en. Da må du opprette en mappe og en tekstfil slik det er beskrevet nedenfor, før du går videre.
Opprett en mappe på nivået rett under C:\ på PC-en din. Kall den for eksempel Python-filer eller Arter.
Opprett en tekstfil i Notisblokk (Notebook) med navnet Fugler.txt, og lagre den i mappen du har opprettet under C:\.
Før du kjører programmet nedenfor, må du endre "c:\Arter\Fugler.txt" slik at det stemmer med mappen du har lagret filen din i. For å finne den nøyaktige plasseringen til filen kan du høyreklikke på den i filutforskeren og velge Egenskaper.
Legg programmet (Python-kodene) inn i et Pyton-program, og lagre det. Du kan lagre Python-programmet i samme mappe som tekstfilen Fugler.txt, men siden koden i programmet uansett inneholder informasjon om plasseringen av tekstfilen, er ikke det viktig.
Prøv å kjøre koden nedenfor i et Python-program.
Åpne tekstfilen du lagde. Hvis du har gjort alt riktig, skal det nå stå "Fugler!" i filen.
Legg inn arter
Neste steg er å utvide programmet slik at vi kan legge inn fuglearter som lagres i filen og er der neste gang vi ønsker å legge til en fugl. Vi må også bestemme hvilke kjennetegn vi vil registrere. Det er disse kjennetegnene vi skal bruke når vi senere søker opp fugler i databasen.
I dette eksempelet holder vi oss til fire kriterier (som nok er for lite i en stor database): hodefarge, brystfarge, nebbform og nebbfarge.
Du kan enkelt endre eller legge til andre kjennetegn senere, for eksempel fotfarge eller ryggfarge. Studer koden, og forsøk å forstå hva hensikten med de ulike kommandoene er.
Bygg opp databasen
Legg inn to fuglearter, og kontroller at de blir skrevet korrekt til filen. Bruk deretter litt tid på å legge inn flere fuglearter.
Du legger sikkert merke til at tekstfilen ikke er så lett å lese. Det står ikke spesifikt hvilken egenskap de ulike detaljene tilhører. Det er fordi tekstfilen ikke er ment å skulle leses av mennesker, men av vårt neste program. Jo mindre forklarende tekst vi legger inn der, jo enklere er det å lage et program som henter ut data fra filen.
Søk i basen
Tenk deg at du er ute på tur og har observert en fugl som du ikke vet navnet på. Du noterer kjennetegnene og prøver databasen din for å finne navnet. Det er selvsagt mulig å lete i tekstfilen etter en art med de samme kjennetegnene, men hvis databasen inneholder veldig mange arter, vil dette ta tid. Vi lager heller et program som leter for oss. Studer koden, og forsøk å forstå hva hensikten med de ulike kommandoene er.
Obs! Legg merke til at du velger tall som står for de opplysningene som ligger i databasen. Fire tall som 7,7,3,2 kan i en database bety "Grønn,Brun,Lang,Gul", som i denne basen gir arten stokkand som resultat. Det er også mulig å velge "Vet ikke". Da vil programmet foreslå arter som kan likne.
Hvis du vil bruke Trinket Python-editor
Siden Trinket Python-editoren ikke har tilgang til disken på PC-en, må kodene i tekstfilen "Fugler" legges inn i en egen fane i editoren for at programmet skal finne dem. Bruk "+" for å legge til en ny fane i Trinket Python-editoren.
Jobb med programmet, og test funksjonalitet
Lag programmet, og prøv å søke opp arter ut fra filen du lagde med det første programmet.
Finner du arten?
Får du flere svar?
Hva kan du gjøre dersom det blir for mange svar ut fra de samme kjennetegnene?
Hvor mange arter og kjennetegn bør registreres i databasen før den blir funksjonell?
Fungerer søket hvis du bare kjenner brystfargen og nebbformen?
Har det noen betydning om du for eksempel skriver "tre" eller "3"?
Hva skjer hvis noen skriver mellomrom etter komma?
Bytt søkeprogram med en medelev, og søk på en art.
Får dere treff?
Er kjennetegnene på artene klare nok?
Kan du legge til egenskaper for farge på føttene eller ryggfarge? Husk å gjøre endringer både i databasen og i koden for søket.
Kan du bruke programmet til å lage en søkbar database for blomster, trær, fisker eller annet?