Oppaat

Mikä on tietokanta? Opas sovellusten rakentajille

Tietokanta on järjestetty tietovarasto, johon sovellus tallentaa tietoja ja josta se lukee niitä: käyttäjät, tilaukset, varaukset, viestit. Toisin kuin selaimen välilehdelle jäävä tieto, tietokannan tieto on tallessa päivityksen tai uudelleenkäynnistyksen jälkeen, ja kaikki sovelluksen käyttäjät näkevät samat tietueet. Useimmat tietokannat järjestävät tiedot tauluihin, aivan kuin taulukkolaskennan välilehdet, mutta niissä on tiukat säännöt, jotka pitävät tiedot johdonmukaisina.

Miksi tämä on tärkeää, kun rakennat tekoälyllä

Yleisin yllätys tekoälyllä rakentavilla on sovellus, joka näyttää valmiilta mutta unohtaa kaiken. Lisäät asiakkaan, päivität sivun ja asiakas on poissa. Tämä tarkoittaa yleensä sitä, että sovellus säilytti tietoja selaimen muistissa eikä tietokannassa.

Tietokanta on myös paikka, jossa monet tärkeimmistä päätöksistäsi elävät, huomasitpa tai et:

  • Mitä kirjaat. Jos et tallenna varauksen tilaa, et voi näyttää, mitkä varaukset on peruttu.
  • Miten asiat liittyvät toisiinsa. Se, voiko yksi asiakas tehdä monta varausta vai yksi varaus monta palvelua, muokkaa koko sovellusta.
  • Kuka näkee mitä. Useimmat yksityisyysvirheet liittyvät siihen, mitä tietueita käyttäjä saa lukea.

Tietokantaa ei tarvitse suunnitella itse. Perusteiden ymmärtäminen kuitenkin auttaa kuvaamaan tietosi selkeästi ja huomaamaan ongelmat ajoissa.

Arkinen vertauskuva

Kuvittele hyvin järjestetty arkistokaappi pienessä toimistossa.

Jokaisessa laatikossa on yhdenlaista tavaraa: yksi laatikko asiakkaille, yksi ajanvarauksille, yksi laskuille. Jokaisessa laatikon kansiossa on sama muoto ja samat kentät täytettyinä. Jokaisella kansiolla on yksilöllinen viitenumero, ja kun lasku kuuluu asiakkaalle, laskun kansio mainitsee asiakkaan numeron sen sijaan, että kopioitaisiin koko asiakastiedosto.

Tämä on relaatiotietokanta. Laatikot ovat tauluja, kansiot ovat rivejä, kentät ovat sarakkeita, viitenumerot ovat pääavaimia (primary key) ja toiseen kansioon osoittavat merkinnät ovat vierasavaimia (foreign key). Hyvä toimistopäällikkö valvoo myös sääntöjä, kuten „ei ajanvarausta ilman päivää” tai „kahdella asiakkaalla ei saa olla samaa numeroa”, aivan kuten tietokanta tekee.

Esimerkki: kampaamon varaussovellus

Oletetaan, että pyydät tekoälyä rakentamaan varaussivuston kampaamolle. Järkevässä tietokannassa olisi neljä taulua.

services (palvelut)

idnameduration_minutesprice
1Hiustenleikkaus4540,00
2Värjäys9095,00

staff (henkilökunta)

idnameemail
1Sarasara@example.com
2Omaromar@example.com

customers (asiakkaat)

idnameemailphone
101Lena Parklena@example.com555-0100

bookings (varaukset)

idcustomer_idservice_idstaff_idstarts_atstatus
5001101122026-10-03 14:00confirmed

Katso taulua bookings. Se ei kopioi Lenan nimeä ja puhelinnumeroa jokaiseen varaukseen, vaan tallentaa customer_id = 101. Jos Lena vaihtaa puhelinnumeronsa, se muuttuu yhteen paikkaan, ja jokainen varaus näyttää uuden numeron. Tämä on relaatiotietokannan ydinajatus: tallenna jokainen tieto kerran ja viittaa siihen.

Sama rakenne vastaa hyödyllisiin kysymyksiin:

  • „Mitkä ajat ovat vapaita Omarilla perjantaina?” Katso Omarin varaukset sinä päivänä.
  • „Paljonko värjäykset tuottivat tässä kuussa?” Yhdistä varaukset palveluihin ja laske hinnat yhteen.
  • „Ketkä asiakkaat eivät ole varanneet 90 päivään?” Vertaa asiakkaita heidän viimeisimpään varaukseensa.

Keskeiset termit

TermiMitä se tarkoittaa
TauluKokoelma yhdenlaisia tietueita, kuten asiakkaita tai varauksia.
Rivi (tietue)Yksi kohde taulussa: yksi asiakas, yksi varaus.
Sarake (kenttä)Yksi tietotyyppi, joka jokaisella rivillä on, kuten sähköposti tai hinta.
PääavainJokaisen rivin yksilöllinen tunniste, yleensä numero tai satunnainen merkkijono.
VierasavainSarake, joka osoittaa toisen taulun riviin, kuten customer_id varauksissa.
SkeemaKoko suunnitelma: mitkä taulut ovat olemassa, niiden sarakkeet ja miten ne liittyvät.
Kysely (query)Pyyntö lukea tai muuttaa tietoja, kuten „kaikki huomisen varaukset”.
SQLStructured Query Language, relaatiotietokantojen yleinen kyselykieli.
MigraatioTallennettu, toistettavissa oleva muutos skeemaan, kuten uuden sarakkeen lisääminen.
IndeksiHakurakenne, joka nopeuttaa haun saraketta, kuten kirjan hakemisto.
CRUDCreate, Read, Update, Delete: neljä perusasiaa, joita sovellukset tekevät tiedoille.
VarmuuskopioKopio tiedoista, jonka voi palauttaa, jos jotain menee pieleen.

Tietokantatyypit

TyyppiMiten se tallentaa tiedotEsimerkkejäHyvä
Relaatio (SQL)Taulut kiinteillä sarakkeilla ja niiden välisillä yhteyksilläPostgres, MySQL, SQLiteUseimmat liiketoimintasovellukset: varaukset, kaupat, asiakkuudenhallinta, SaaS
Dokumentti (NoSQL)Joustavat JSON-tyyppiset dokumentitMongoDB, FirestoreTiedot, joiden muoto vaihtelee paljon tietueesta toiseen
Avain-arvoArvo tallennettuna avaimen alleRedisVälimuisti, lyhytaikaiset tiedot kuten istunnot

Kaikelle, minkä perustaja tai pieni yritys rakentaa ensin, relaatiotietokanta on turvallinen oletus.

Missä tietokanta sijaitsee sovelluksessasi

Käyttäjät eivät puhu tietokannan kanssa suoraan. Selaimessa oleva sivu (frontend, käyttöliittymä) pyytää palvelimelta (backend) tietoja, yleensä API:n kautta. Palvelin tarkistaa, kuka pyytää ja onko hänellä lupa, kysyy sitten tietokannasta ja lähettää takaisin vain sen, minkä kyseisen henkilön pitää nähdä.

Tämä välivaihe on tärkeä. Jos selain voisi kysyä tietokantaa suoraan täydellä käyttöoikeudella, kuka tahansa voisi avata kehittäjätyökalut ja lukea kaiken.

Yleisiä virheitä ja väärinkäsityksiä

  • Tietojen säilyttäminen vain selaimessa. Selaimen tallennustila (kuten localStorage) asuu yhdellä laitteella ja yhdessä selaimessa. Se sopii muistettuun suodattimeen, ei tilauksiin.
  • Kaiken tunkeminen yhteen tauluun. Yksi „varaukset”-taulu, johon asiakkaan nimi, puhelin ja palvelun hinta on kopioitu jokaiselle riville, menee nopeasti epäsynkroniin.
  • Salasanojen tallentaminen selkokielisinä. Salasanat pitää tiivistää (hash), ei tallentaa luettavina. Katso mitä todennus on.
  • Ei sääntöjä tiedoille. Ilman pakollisia kenttiä ja yksilöllisyyssääntöjä saat varauksia ilman päivää ja kaksoiskappaleita asiakkaista.
  • Poistamisen unohtaminen. Päätä, poistaako asiakkaan poisto myös hänen varauksensa, säilyttääkö se ne vai estääkö se poiston.
  • Tuotantotietojen käyttäminen kokeiluihin. Testaa riskialtisia muutoksia turvallisessa paikassa ja pidä varmuuskopiot.
  • Taulukkolaskennan pitäminen tietokantana ikuisesti. Taulukot sopivat hyvin alkuun, mutta ne kärsivät, kun käyttäjiä on monta samanaikaisesti tai oikeuksia tarvitaan. Katso miten muutat taulukon sovellukseksi.

Mitä pyytää tekoälyrakentajalta

  • „Tallenna tämä tietokantaan, älä selaimeen. Kerro, mitkä taulut luot.”
  • „Näytä skeema yksinkertaisena taulukkona: jokainen taulu, sen sarakkeet ja niiden väliset yhteydet.”
  • „Asiakkaalla voi olla monta varausta. Jokaisella varauksella on täsmälleen yksi palvelu ja yksi henkilökunnan jäsen.”
  • „Tee asiakkaan sähköpostista pakollinen ja yksilöllinen.”
  • „Estä kahta varausta samalle henkilökunnan jäsenelle menemästä päällekkäin.”
  • „Vain kirjautunut omistaja saa lukea kaikki varaukset. Asiakkaat näkevät vain omansa. Varmista se palvelimella.”
  • „Kun poistan palvelun, älä poista menneitä varauksia. Merkitse palvelu sen sijaan passiiviseksi.”

Tietokannat Mythexissä

Kun sovelluksesi täytyy tallentaa tietoja, Mythex lisää projektiin oman Postgres-tietokannan. Voit pyytää sitä chatissa („tallenna odotuslistan rekisteröitymiset tietokantaan”) tai käyttää komentoa /database. Yhteystiedot annetaan sovellukselle automaattisesti, ja agentti luo taulut. Tietokanta nukkuu viiden tyhjäkäyntiminuutin jälkeen ja herää seuraavalla pyynnöllä. Julkaistun käytön hinta lasketaan ajasta, jolloin tietokanta oli hereillä, samasta krediittisaldosta kuin rakentaminen. Se on saatavilla Free- ja Pro-tasoilla. Tietokantadokumentaatio kertoo lisää, ja sovellusmallit tarjoavat datalähtöisiä aloituskohtia.

Kysymykset

Mikä on tietokanta yksinkertaisesti selitettynä?

Tietokanta on järjestetty tietovarasto, johon sovellus tallentaa tietoja ja josta se lukee niitä, kuten käyttäjiä, tilauksia tai varauksia. Toisin kuin selaimen välilehdelle jäävä tieto, tietokannan tieto säilyy päivityksen, uudelleenkäynnistyksen tai toisella laitteella avaamisen jälkeen.

Onko taulukkolaskenta tietokanta?

Taulukkolaskenta voi pitää samanlaista tietoa, mutta sitä ei ole tehty sovelluksia varten. Oikea tietokanta valvoo sääntöjä siitä, mitä kukin sarake sisältää, yhdistää taulut luotettavasti, käsittelee monen ihmisen kirjoituksia samanaikaisesti ja hallitsee, kuka saa lukea mitäkin.

Mikä on ero SQL- ja NoSQL-tietokantojen välillä?

SQL-tietokannat (relaatiotietokannat), kuten Postgres ja MySQL, tallentavat tiedot tauluihin, joissa on määritellyt sarakkeet ja niiden väliset yhteydet. NoSQL-tietokannat, kuten MongoDB, tallentavat joustavampia dokumentteja. Useimmat liiketoimintasovellukset, kuten varaukset, asiakkuudenhallinta ja kaupat, sopivat relaatiomalliin hyvin.

Tarvitseeko sovellukseni tietokannan?

Jos sen täytyy muistaa jotain, mitä ihmiset syöttävät, kuten rekisteröitymisiä, tilauksia, viestejä tai asetuksia, ja näyttää sen myöhemmin tai jollekin toiselle, tarvitsee. Pelkästään tietoa esittävä sivusto ilman tietoja tallentavia lomakkeita ei yleensä tarvitse.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)