Juhendid

Mis on andmebaas? Juhend rakenduste ehitajatele

Andmebaas on korrastatud infohoidla, millesse rakendus salvestab ja kust ta loeb — tema kasutajad, tellimused, broneeringud, sõnumid. Erinevalt brauseri ajutises mälus hoitud infost jäävad andmebaasi andmed alles ka pärast lehe värskendamist või taaskäivitamist ning kõik rakendust kasutavad inimesed näevad samu kirjeid. Enamik andmebaase korrastab andmed tabeliteks, sarnaselt tabelarvutuse lehtedega, kuid rangete reeglitega, mis hoiavad andmed järjepidevana.

Miks see AI-ga ehitamisel oluline on

Kõige sagedasem üllatus AI-ga ehitajatele on rakendus, mis näib valmis, aga unustab kõik ära. Lisad kliendi, värskendad lehte ja ta on kadunud. See tähendab tavaliselt, et rakendus hoidis andmeid brauseri mälus, mitte andmebaasis.

Andmebaas on ka koht, kus paljud sinu kõige olulisemad otsused elavad, olenemata sellest, kas sa seda tead:

  • Mida sa salvestad. Kui sa ei salvesta broneeringu staatust, ei saa sa näidata, millised broneeringud tühistati.
  • Kuidas asjad seotud on. Kas üks klient võib omada mitut broneeringut või üks broneering mitut teenust, kujundab kogu rakenduse.
  • Kes mida näha tohib. Enamik privaatsusvigu puudutab seda, milliseid kirjeid kasutaja lugeda tohib.

Andmebaasi ei pea ise kavandama. Aga põhitõdede mõistmine aitab sul oma andmeid selgelt kirjeldada ja probleeme varakult märgata.

Igapäevane võrdlus

Kujutle korrastatud failikappi väikeses kontoris.

Iga sahtel hoiab ühte liiki asju: üks sahtel klientidele, teine kohtumistele, kolmas arvetele. Iga sahtli sees järgib iga kaust sama vormi, kus on samad väljad täidetud. Igal kaustal on unikaalne viitenumber ja kui arve kuulub kliendile, märgib arvekaust selle kliendi numbri, selle asemel et kopeerida kogu tema fail.

See on relatsiooniline andmebaas. Sahtlid on tabelid, kaustad on read, väljad on veerud, viitenumbrid on primaarvõtmed ja märked, mis osutavad teisele kaustale, on võõrvõtmed. Hea kontorijuht jõustab ka reegleid — kohtumist ei tohi ilma kuupäevata, kahel kliendil ei tohi olla sama numbrit — täpselt nagu seda teeb andmebaas.

Töötav näide: juuksurisalongi broneerimisrakendus

Olgu, et palud AI-l ehitada juuksurisalongi broneerimissaidi. Mõistlikus andmebaasis oleks neli tabelit.

services

idnameduration_minutesprice
1Juuksurilõikus4540,00
2Värvimine9095,00

staff

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

customers

idnameemailphone
101Lena Parklena@example.com555-0100

bookings

idcustomer_idservice_idstaff_idstarts_atstatus
5001101122026-10-03 14:00confirmed

Vaata tabelit bookings. See ei kopeeri Lena nime ja telefoninumbrit igasse broneeringusse; see salvestab customer_id = 101. Kui Lena muudab oma telefoninumbrit, muutub see ühes kohas ja iga broneering näitab uut numbrit. See on relatsioonilise andmebaasi põhiidee: salvesta iga fakt üks kord ja lingi sellele.

Sama struktuur vastab ka kasulikele küsimustele:

  • „Millised ajad on Omarile reedel vabad?“ — vaata Omari broneeringuid sel päeval.
  • „Kui palju teenisid värvimisseansid sel kuul?“ — ühenda broneeringud teenustega ja liida hinnad kokku.
  • „Milliseid kliente pole 90 päeva jooksul broneeritud?“ — võrdle kliente nende viimase broneeringuga.

Põhiterminid selgitatult

TerminMida see tähendab
TabelÜhte liiki kirjete kogum, näiteks kliendid või broneeringud.
Rida (kirje)Üks üksus tabelis — üks klient, üks broneering.
Veerg (väli)Üks info osa, mis igal real on, näiteks e-post või hind.
PrimaarvõtiIga rea unikaalne ID, tavaliselt number või juhuslik string.
VõõrvõtiVeerg, mis osutab teise tabeli reale, näiteks customer_id broneeringutes.
SkeemÜldine disain: milliseid tabeleid on, nende veerud ja kuidas need on seotud.
PäringTaotlus andmete lugemiseks või muutmiseks, näiteks „kõik homsed broneeringud“.
SQLStructured Query Language, relatsiooniliste andmebaaside standardne päringukeel.
MigratsioonSalvestatud ja korratav muudatus skeemis, näiteks veeru lisamine.
IndeksOtsingustruktuur, mis kiirendab veeru otsinguid, nagu raamatu register.
CRUDCreate, Read, Update, Delete — neli põhilist toimingut, mida rakendused andmetega teevad.
VarundusAndmete koopia, mille saad taastada, kui midagi valesti läheb.

Andmebaasi tüübid

TüüpKuidas andmeid hoitakseNäitedSobib hästi
Relatsiooniline (SQL)Tabelid kindlate veergudega ja nendevaheliste seostegaPostgres, MySQL, SQLiteEnamik äriliselt kasutatavaid rakendusi: broneeringud, poed, CRM-id, SaaS
Dokumendipõhine (NoSQL)Paindlikud JSON-taolised dokumendidMongoDB, FirestoreAndmed, mille kuju kirjete vahel palju erineb
Võti-väärtusVäärtus, mis on salvestatud võtme allRedisVahemällu salvestamine, lühiajalised andmed nagu sessioonid

Peaaegu kõige jaoks, mida asutaja või väike ettevõte esimesena ehitab, on relatsiooniline andmebaas turvaline vaikevalik.

Kus andmebaas sinu rakenduses asub

Külastajad ei suhtle andmebaasiga otse. Nende brauseris olev leht (esiosa) küsib andmeid sinu serverilt (taustaprogrammilt), tavaliselt API kaudu. Server kontrollib, kes küsib ja kas tal on luba, seejärel teeb andmebaasile päringu ja saadab tagasi ainult selle, mida see inimene tohib näha.

See vahepealne samm on oluline. Kui brauser saaks andmebaasi päringuid teha täisõigustes, saaks igaüks avada arendustööriistad ja lugeda kõike.

Levinud vead ja väärarusaamad

  • Andmete hoidmine ainult brauseris. Brauseri salvestus (nagu localStorage) elab ühes seadmes ja ühes brauseris. See sobib meeldejäänud filtri jaoks, mitte tellimuste jaoks.
  • Kõige ühte tabelisse topimine. Üks tabel „broneeringud“, kuhu iga rea sisse on kopeeritud kliendi nimi, telefon ja teenuse hind, läheb kiiresti sünkroonist välja.
  • Paroolide salvestamine lihtteksti. Paroolid tuleb räsitud, mitte kunagi loetavalt salvestada. Vaata mis on autentimine.
  • Andmetele reeglite puudumine. Ilma kohustuslike väljade ja unikaalsuse reegliteta saad broneeringuid ilma kuupäevata ja korduvaid kliente.
  • Kustutamisest mõtlemata jätmine. Otsusta, kas kliendi kustutamine kustutab ka tema broneeringud, jätab need alles või on keelatud.
  • Tootmisandmete kasutamine katsetamiseks. Testi riskantseid muudatusi kõigepealt kuskil ohutus kohas ja hoia varukoopiaid.
  • Tabelarvutuse pidamine andmebaasiks igaveseks. Tabelarvutused sobivad alustamiseks suurepäraselt, kuid nad ei tule hästi toime paljude samaaegsete kasutajate ja õigustega. Vaata kuidas tabelarvutust rakenduseks muuta.

Mida küsida oma AI-ehitajalt

  • „Salvesta see andmebaasi, mitte brauserisse. Ütle mulle, milliseid tabeleid sa loood.“
  • „Näita mulle skeemi lihtsa tabelina: iga tabel, selle veerud ja kuidas need on seotud.“
  • „Kliendil võib olla mitu broneeringut; igal broneeringul on täpselt üks teenus ja üks töötaja.“
  • „Tee kliendi e-post kohustuslikuks ja unikaalseks.“
  • „Takista, et kahe broneeringu ajad sama töötaja juures kattuksid.“
  • „Ainult sisse logitud omanik saab lugeda kõiki broneeringuid; kliendid näevad ainult oma broneeringuid. Jõusta see serveris.“
  • „Kui ma kustutan teenuse, ära kustuta möödunud broneeringuid — märgi teenus hoopis mitteaktiivseks.“

Andmebaasid Mythexis

Kui sinu rakendus peab andmeid salvestama, lisab Mythex projektile spetsiaalse Postgres-andmebaasi — saad paluda vestluses („salvesta ootenimekirja registreerimised andmebaasi“) või kasutada käsku /database. Ühendusandmed antakse rakendusele automaatselt edasi ning agent loob tabelid. Andmebaas magab pärast viit tegevusetut minutit ja ärkab järgmisel päringul ning avaldatud kasutuse eest arvestatakse tasu aja järgi, mil ta oli ärkvel, sama krediidisaldo põhjal, mida kasutatakse ehitamiseks. See on saadaval nii Free kui ka Pro paketis. Üksikasjad on andmebaasi dokumentatsioonis ning rakenduste mallid sisaldavad andmepõhiseid alguspunkte.

Küsimused

Mis on andmebaas lihtsalt öeldes?

Andmebaas on korrastatud infohoidla, kuhu rakendus saab salvestada ja kust saab lugeda, näiteks kasutajaid, tellimusi või broneeringuid. Erinevalt brauseri vahelehel ainult hoitud andmetest jäävad need alles ka pärast lehe värskendamist, taaskäivitamist või siis, kui keegi avab rakenduse teisest seadmest.

Kas tabel on andmebaas?

Tabel võib hoida samasugust tüüpi andmeid, kuid see ei ole rakenduste jaoks loodud. Päris andmebaas jõustab reegleid selle kohta, mida iga veerg sisaldab, seob tabelid usaldusväärselt omavahel, toetab paljude inimeste samaaegset kirjutamist ja kontrollib, kes mida lugeda võib.

Mis vahe on SQL- ja NoSQL-andmebaasidel?

SQL-i (relatsioonilised) andmebaasid nagu Postgres ja MySQL hoiavad andmeid tabelites, millel on kindlad veerud ja nendevahelised seosed. NoSQL-andmebaasid nagu MongoDB hoiavad paindlikumaid dokumente. Enamik äriliselt kasutatavaid rakendusi — broneeringud, CRM-id, poed — sobivad relatsioonilise mudeliga hästi.

Kas mu rakendus vajab andmebaasi?

Kui ta peab meelde jätma midagi, mida inimesed sisestavad — registreerimised, tellimused, sõnumid, seadistused — ja näitama seda hiljem või kellelegi teisele, siis jah. Puhtalt informatiivne veebisait ilma andmeid salvestavate vormideta ei vaja tavaliselt andmebaasi.

Mythex · Pricing · Ehita kõike AI-ga · Veebilehtede ja rakenduste mallid · Mythex võrdluses · Tehisintellektiga rakenduste ehitamise sõnastik · Tasuta tööriistad tehisintellektiga rakenduste ehitamiseks · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) فارسی Suomi 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 简体中文 繁體中文(香港) 繁體中文(台灣)