Kodulehed
[385] - Andmebaasid II (ITI0207) (sügis 2023)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid.
Värvilised mummud tähistavad hinnangulist kataloogide lugemise vajadust. Roheline - suurim, kollane - keskmine, punane või mummuta - väikseim
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Mitmesugust / Viited

Viited teemade kaupa:
Andmebaaside kursused teistes ülikoolides
Animatsioonid
Olemasolevate tabelite struktuuri visualiseerimine
PostgreSQL
Oracle
Andmebaasi kasutavate rakenduste disain
MS Access
PHP + PostgreSQL
Oracle Application Express
Üldine
SQL
Agiilmetoodikad ja nende kasutamine andmebaaside projekteerimise juures
Andmebaaside ja andmebaasisüsteemide testimine
Andmete turvalisus
Transaktsioonid
NoSQL
XML & andmebaasid
Hajussüsteemid
Andmeaidad
SQL koodis probleemide tuvastamise tarkvara

Andmebaaside kursused teistes ülikoolides
Carnegie Mellon ülikooli andmebaaside teemalised kursused
https://db.cs.cmu.edu/courses/

Carnegie Mellon ülikooli andmebaasisüsteemide jätkukursus (kevad 2020)
https://www.youtube.com/playlist?list=PLSE8ODhjZXjasmrEd2_Yi1deeE360zv5O
See kursus keskendub andmebaasisüsteemi sisemistele tööpõhimõtetele. Kursuse kodulehel on vabalt kättesaadavad ka loengute slaidid ja koduülesanded.
Carnegie Mellon ülikooli andmebaasisüsteemide kursus (sügis 2019)
https://www.youtube.com/playlist?list=PLSE8ODhjZXjbohkNBWQs_otTrBTrjyohi
See kursus keskendub andmebaasisüsteemi sisemistele tööpõhimõtetele. Kursuse kodulehel on vabalt kättesaadavad ka loengute slaidid ja koduülesanded.
PostgreSQL päringute optimeerimise kursus vene keeles
https://postgrespro.ru/education/courses/QPT

Sisukord
Animatsioonid
Animatsioonid hajustransaktsioonide kahefaasilise kinnitamise protokolli kohta
https://maurus.ttu.ee/animatsioonid/animation_2PC/

Sisukord
Olemasolevate tabelite struktuuri visualiseerimine
Sisukord
PostgreSQL
Aeglaste päringute jälgimine PostgreSQLis
https://www.cybertec-postgresql.com/en/3-ways-to-detect-slow-queries-in-postgresql/
pg_stat_statements, auto_explain, autoexplain, PostgreSQL, log_min_duration_statement, aeglane päring, logimine
Carnegie Melloni ülikooli andmebaaside eriala professori Andy Pavlo ajaveeb
https://www.cs.cmu.edu/~pavlo/blog/
Andmebaaside/andmebaasisüsteemide optimeerimisele pühendunud tarkvara ajaveeb, kus on päris palju artikleid PostgreSQL kohta.
Community Guide to PostgreSQL GUI Tools
https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools
Erinevad tarkvaravahendid PostgreSQL andmebaaside projekteerimiseks, programmeerimiseks ja haldamiseks. Nimekirjas on nii vaba tarkvara kui ka kommertstarkvara.
Cybertec - PostgreSQL Overview
https://www.cybertec-postgresql.com/en/postgresql-overview/
PostgreSQLi kohta konsultatsioone pakkuv ettevõte, mille üks allüks töötab ka Eestis.
Discovering the Computer Science Behind Postgres Indexes
https://patshaughnessy.net/2014/11/11/discovering-the-computer-science-behind-postgres-indexes
Hea ülevaade sellest, kuidas on PostgreSQLis realiseeritud indeksid. Lugejad saavad ühtlasi ülevaate mõningatest põhilistest viisidest, kuidas andmebaasisüsteemid sisemiselt andmete otsimisega tegelevad (tabeli täielik läbiskaneerimine e sequential scan; B+ puu indeksi kasutamine).
Don't Do This
https://wiki.postgresql.org/wiki/Don%27t_Do_This
Asjad, mida PostgreSQL andmebaasi kavandamisel ning kasutamisel tuleks vältida.
Frequently Asked Questions (FAQ) for PostgreSQL
https://wiki.postgresql.org/wiki/FAQ
Korduma Kippuvad Küsimused
Haki Benita Blog
https://hakibenita.com/
Andmebaaside teemaline ajaveeb, kus on palju juttu ja näiteid ka PostgreSQL kohta
Handling Growth with Postgres: 5 Tips From Instagram
https://instagram-engineering.com/handling-growth-with-postgres-5-tips-from-instagram-d5d7e7ffdfcb
Populaarne sotsiaalvõrgustik ja fotode jagamise keskkond Instagram kasutab PostgreSQL andmebaasisüsteemi. Siit võite lugeda selle süsteemi arendajate soovitusi PostgreSQLi kasutavate süsteemide jõudluse parandamiseks.
Jõudlusprobleemide lahendamisest PostgreSQLi näitel
https://www.justwatch.com/blog/post/debugging-postgresql-performance-the-hard-way/
Hea lisalugemine teema 7 juurde sellest, kuidas reaalses süsteemis Sherlock Holmes`likult ühe jõudlusprobleemi põhjuseid taga otsiti ja siis see probleem lahendati.
Learn Postgres at the Playground
https://www.crunchydata.com/blog/learn-postgres-at-the-playground
PostgreSQLi õppimise veebipõhine keskkond.
Open Directory Project
https://www.postgresql.org/download/product-categories/
PostgreSQL'iga seotud tarkvara
PG Phriday
http://bonesmoses.org/categories/database/
Shaun M. Thomase ajaveeb, kus on palju sissekandeid PostgreSQLi kohta
PostgreSQL andmebaasi kitsendused - viimane kaitseliin
https://www.citusdata.com/blog/2018/03/19/postgres-database-constraints/

PostgreSQL Audit Logging Best Practices
https://severalnines.com/blog/postgresql-audit-logging-best-practices/
PostgreSQLi andmebaasis tehtud tegevuste logimise (auditeerimise) parimad praktikad.
PostgreSQL Exercises
https://pgexercises.com/
PostgreSQLi ja selle kaudu ka SQLi interaktiivne harjutamine
PostgreSQL Extension Network
https://pgxn.org/
Laiendused PostgreSQL andmebaasisüsteemile
PostgreSQLi SQL mägimurraku (dialekti) kasutamise näited ja õpetused
https://popsql.com/learn-sql/postgresql

Queries in PostgreSQL
https://postgrespro.com/blog/pgsql/5969262
Artiklisari selle kohta, kuidas PostgreSQL sisemiselt andmekäitluskeele lauseid töötleb ja täidab.
The part of PostgreSQL we hate the most
https://www.cs.cmu.edu/~pavlo/blog/2023/04/the-part-of-postgresql-we-hate-the-most.html
Kuidas PostgreSQL realiseerib multiversioon konkurentsjuhtimise tehnikat (Multi Version Concurrency Control, MVCC), ning miks see realisatsioon on halvem teistes andmebaasisüsteemides sama tehnika realiseerimiseks kasutatud lahendusest.
Sisukord
Oracle
Artiklid ja koodinäited Oracle kohta
https://www.techtarget.com/searchoracle/

Ask Tom
https://asktom.oracle.com
Thomas Kyte on tunnustatud Oracle ekspert. Tema lehel saavad inimesed esitada küsimusi, neile vastatakse T. Kyte poolt ning lisaks annab tekkinud arutelu täiendavaid häid mõtteid. Kui Teil tekib kunagi küsimus Oracle kohta, siis 1) vaadake Oracle manuaali ja 2) külastage T. Kyte lehekülge.
Implementing attribute and tuple rules
http://rwijk.blogspot.com/2008/08/implementing-attribute-and-tuple-rules.html
Kitsenduste jõustamise trikid Oracle andmebaasis. Muuhulgas demonstreeritakse, kuidas selleks kasutada virtuaalseid nähtamatuid veerge.
Implementing entity rules
http://rwijk.blogspot.com/2008/08/implementing-entity-rules.html
Kitsenduste jõustamise trikid Oracle andmebaasis. Muuhulgas näidatakse, kuidas kasutada unikaalseid osalisi indekseid ja hetktõmmiseid e materialiseeritud vaateid.
Implementing inter-entity rules
http://rwijk.blogspot.com/2008/08/implementing-inter-entity-rules.html
Kitsenduste jõustamise trikid Oracle andmebaasis. Muuhulgas näidatakse, kuidas kasutada selleks hetktõmmiseid e materialiseeritud vaateid ning kommenteeritakse trigerite kasutamist.
Inside Oracle – Julian Dyke. Understanding Oracle Internals
http://www.juliandyke.com
Oracle hingeelu teemaline lehekülg, sealhulgas ajaveeb.
Kogumik artikleid Oracle 12c (tuli turule 2013. aasta juulis) uute võimaluste ja omaduste kohta
https://www.oraclealchemist.com/12cNF/

Kuidas jõustada hetktõmmiste abil kitsendusi baastabelitele?
http://www.sqlsnippets.com/en/topic-12896.html

Martin Widlake
https://mwidlake.wordpress.com/
Oracle teemaline ajaveeb.
Mythbusters: Stored Procedures Edition
https://ora-00001.blogspot.com/2011/07/mythbusters-stored-procedures-edition.html
Ajaveebi sissekanne, mis lükkab ümber salvestatud protseduuride kohta käivaid levinud müüte. Jutt põhineb Oracle andmebaasisüsteemil.
Optimizing Your Oracle Database Experience
http://www.thatjeffsmith.com/
Ajaveeb Oracle andmebaasisüsteemi ja SQL Developer haldusvahendi kohta.
Oracle 12c (Release 1) dokumentatsioon
https://docs.oracle.com/database/121/index.htm

Oracle-Base
https://oracle-base.com/
Oracle alaste artiklite ja administraatorit abistavate skriptide kogum.
Oracle Community
https://community.oracle.com/hub/
Lehekülg, mis koondab Oracle huvilisi ümber maailma.
Oracle® Database SQL Language Reference 12c Release 1 (12.1)
https://docs.oracle.com/database/121/SQLRF/toc.htm

Oracle ja PostgreSQL andmetüüpide vastavus
http://www.sqlines.com/oracle-to-postgresql
Üleminek ühelt andmebaasisüsteemilt teisele. Andmetüübid.
Oracle käivitusparameetrite failis kirjeldatavate parameetrite näited
https://www.oracle-books.com/orasnap/example/notes/initora.htm

Oracle käskude lühike spikker
https://ss64.com/ora/

Oracle Live SQL
https://livesql.oracle.com/
Oracle SQL mägimurraku õppimise ja skriptide jagamise keskkond
Oracle's letter to Russian IT companies
https://news.ycombinator.com/item?id=11317899
Hiljutine arutelu teemal, kuidas ettevõtted valivad enda infosüsteemide jaoks andmebaasisüsteeme ning milliseid meetodeid andmebaasisüsteemide arendajad kasutavad, et leida uusi kliente ja hoida kinni olemasolevaid. Eriti keskendutakse Oracle andmebaasisüsteemile.
Oracle teemaline ajaveeb, mille autoriks on Richard Foote.
https://richardfoote.wordpress.com/
Palju tähelepanu pööratakse indeksitele ja indekseerimisega seotud küsimustele.
Pete Finnigan's Oracle security weblog
http://www.petefinnigan.com

Pete Finnigan's Oracle security weblog
http://www.petefinnigan.com/weblog/entries/

PL/SQL challenge
https://devgym.oracle.com/
PL/SQL probleemid ja nende lahendused
PL/SQL pakettide koodi generaator
https://ora-00001.blogspot.com/2018/08/quick-plsql-code-generator-for-plsql.html
Tutvustav ajaveebi sissekanne, koos videotega ja viitega töötavale generaatorile. Generaator on võimeline genereerima ka CRUD operatsioone realiseerivaid rutiine. Generaatori sisendiks on rutiinide annoteeritud kirjeldus ja väljundiks PL/SQL kood, kus on CREATE PACKAGE ja CREATE PACKAGE BODY laused.
Securing Account Details: A Story About SQL Injection and Bind Variables
https://blogs.oracle.com/sql/post/securing-account-details-a-story-about-sql-injection-and-bind-variables
Hea selgitus, mikspärast on Oracles vaja eelistada rutiinides bind variables kasutamist.
SQL and Database explained!
https://www.youtube.com/@DatabaseDude
Lühivideod Oracle andmebaasisüsteemi ja SQLi kohta.
The Oracle Alchemist
https://www.oraclealchemist.com/
Oracle teemaline ajaveeb.
Ülevaade Bitmap indeksite hingeelust (PowerPointi esitlus)
http://www.juliandyke.com/Presentations/BitmapIndexInternals.ppt

Sisukord
Andmebaasi kasutavate rakenduste disain
Feral Concurrency Control: An Empirical Investigation of Modern Application Integrity
https://blog.acolyer.org/2015/09/04/feral-concurrency-control-an-empirical-investigation-of-modern-application-integrity/
Andmetele kehtivate kitsenduste kontrollimisest ainult rakenduse tasemel. 13% uuritud rakendustes realiseeritud kitsenduste kontrollidest ei täitnud eesmärki (st võimaldasid lisada andmebaasi ebakorrektseid andmeid). Põhjus on, et arendajad ei arvestatud võimalusega, et samaaegselt võib sama andmeelementi kasutada mitu kasutajat.
Fowler, M. Patterns of Enterprise Application Architecture
https://martinfowler.com/eaaCatalog/

Kasutajaliidese disainimustrid
https://ui-patterns.com/

Martin Kleppmanni ajaveeb
https://martin.kleppmann.com/
Ta avaldas 2017. aastal raamatu andmekesksete süsteemide loomise kohta ("Designing Data-Intensive Applications"). Tema ajaveebis leiavad käsitlemist paljud hajussüsteemide ning erinevate andmetöötluseks mõeldud tarkvarasüsteemide (nt andmebaasisüsteemid, otsingusüsteemid, järjekorrapõhised teadetevahetuse süsteemid) integratsiooni ning tehnilise realisatsiooni küsimused.
Microsoft Inductive User Interface Guidelines
https://learn.microsoft.com/en-us/previous-versions/ms997506(v=msdn.10)
Juhend, kuidas luua induktiivset kasutajaliidest, mis suunab kasutaja tegevust ja ei pane igal sammul kasutajat mõistatama, milleks mingi aken mõeldud on ja kuidas seda kasutada. Sellises rakenduses on iga aken mõeldud ühe kindla ja kasutajale selgelt väljendatud ülesande täitmiseks. Seega selle asemel, et teha ekraanivorm "Kasutajate haldus", kust saab valida kasutaja lisamist, deaktiveerimist, parooli muutmist tuleks teha kolm eraldi vormi, millel on pealkirjad: - Lisa kasutaja - Deaktiveeri kasutaja - Muuda kasutaja parool Igal sellisel vormil on selgelt tähistatud kuidas töö lõpetada/vormilt lahkuda ning on võimalik valida vormi põhitegevusega seotud alamtegevusi.
Mõned kõige olulisemad tarkvara hea ülesehituse põhimõtted
https://effectivesoftwaredesign.com/2012/02/05/separation-of-concerns/

Object-Relational Mapping is the Vietnam of Computer Science
https://blog.codinghorror.com/object-relational-mapping-is-the-vietnam-of-computer-science/
Artikkel, kus räägitakse SQL-andmebaaside (relatsiooniliste andmebaaside) ja objekt-orienteeritud programmeerimiskeeles kirjutatud programmide koostöö saavutamise probleemidest (object-relational mapping).
(Some) ORM Haters Do Get It
https://web.archive.org/web/20221202092700/http://www.revision-zero.org/orm-haters-do-get-it
Siin tuuakse välja loogiline vastuolu ja ühildamatus objektorienteeritud ja relatsioonilise (hulkadele orienteeritud) mõtteviisi vahel.
Tarkvara kvaliteedi karakteristikud, mida kirjeldab ISO/IEC 25010:2011 standard
http://thepiratblog.blogspot.com/2013/02/isoiec-250102011-characteristics-summary.html

The case against ORMs
https://korban.net/posts/postgres/2017-11-02-the-case-against-orms/
Arendaja põhjendused, miks ta on loobunud ORM vahendite kasutamisest.
The Helsinki Declaration (IT-version)
http://thehelsinkideclaration.blogspot.com/2009/03/start-of-this-blog.html
Blogi, kus kirjeldatakse andmebaasi kasutavate rakenduste disaini parimaid praktikaid.
Tidwell, J. Mustrite keel (soovituste kogum) kasutajaliideste loomise kohta
http://www.mit.edu/~jtidwell/interaction_patterns.html

Sisukord
MS Access Rakenduse ja andmebaasi sidumine
Sisukord
PHP + PostgreSQL Rakenduse ja andmebaasi sidumine
Beginning Databases with PostgreSQL - Chapter 15: Accessing PostgreSQL from PHP
https://www.sitepoint.com/accessing-postgresql-php/

PHP4 and PostgreSQL: Building Serious Web Applications with Open-Source Software
https://www.linuxjournal.com/article/4343

PHP: PostgreSQL Functions - Manual
https://www.php.net/pgsql

Sisukord
Oracle Application Express Rakendus, veebirakendus, kiirprogrammeerimise vahend
Oracle ja SQL andmebaaside teemaline ajaveeb, milles on viimasel ajal olnud palju sissekandeid Oracle APEXi võimaluste kohta
https://ora-00001.blogspot.com/

Sisukord
Üldine
A Collection of Well-Known Software Failures
https://www.cse.psu.edu/~gxt29/bug/softwarebug.html
Näiteid kalliks maksma läinud tarkvara vigadest. Enamike nende puhul on tekkinud mingisugune probleem andmetega.
Andmebaaside kursus Washingtoni ülikoolis
http://courses.cs.washington.edu/courses/csep544/04sp/
Muuhulgas on väljas ka kursuse videod ja slaidid.
Andmebaasi migratsiooni näide
https://momjian.us/main/blogs/pgblog/2016.html#September_28_2016
Suurettevõtte andmebaasi ühest andmebaasisüsteemist (Oracle => PostgreSQL) teise migreerimine Yandex Mail näitel (saab vaadata videot). Andmebaasidega seotud tegevuste näide \"päriselust\".
Andmebaasisüsteemide arendamise teemaline blogi
http://completerewrite.blogspot.com/
Praeguseks on sissekannete tegemine lõpetatud.
Andmebaasisüsteemide populaarsuse pingerida
https://db-engines.com/en/ranking
Igakuiselt leitav andmebaasisüsteemide populaarsuse pingerida. Populaarsust arvutatakse veebilehtedel mainimise, otsingute sageduse, arutelude sageduse, tööpakkumiste arvu ning isiklike oskuste profiilis mainimiste alusel.
Bad Habits Revival
https://sqlblog.org/bad-habits
Põhjalik nimekiri andmebaasi programmeerijate halbadest harjumustest MS SQL Serveri andmebaasisüsteemi näitel.
Carnegie Mellon ülikooli andmebaaside teadusgrupp
https://db.cs.cmu.edu/
Töötavad mitmete huvitavate projektidega, seoses andmebaasisüsteemide funktsionaalsuse suurendamisega ning andmebaasi disaini automatiseerimisega.
Database Lifecycle Management
https://www.red-gate.com/simple-talk/collections/database-lifecycle-management-patterns-practices-library/
Palju juttu andmebaasi testimisest, evitamisest, versioonikontrollist. Tehnilisemad näited on seal MS SQL Serveri baasil, kuid üldiselt on see jutt oluline ja vajalik mistahes andmebaasisüsteemi korral.
Data Platforms Map June 2015
https://web.archive.org/web/20211018100659/https://www.csee.umbc.edu/~kalpakis/courses/661-fa15/papers/data_platform_map_june_2015-1.pdf
Suur pilt (1. juuni 2015 seisuga) erinevatest andmebaasitehnoloogiatest ning neid realiseerivatest tarkvarasüsteemidest.
IT ja sidetehnika seletav sõnaraamat
http://www.vallaste.ee/

It's time to say goodbye to the GPL
https://martin.kleppmann.com/2021/04/14/goodbye-gpl.html
Argumentatsioon, et suurim oht tarkvara vabadusele ei tule tänapäeval mitte suletud lähtekoodiga tarkvarast, vaid pilvepõhisest tarkvarast, kus andmed on kellegi teise hoole ning suva all ja kogu aeg ähvardab oht, et andmete omanik kaotab nendele andmetele ajutiselt või igaveseks juurdepääsu.
IT terministandardi projekti (1998-2001) sõnastik
http://www.keeleveeb.ee/dict/speciality/itstandard/

Kuznetsov, A., 2010. Defensive Database Programming with SQL Server, Simple Talk Publishing. 389 p.
https://www.red-gate.com/library/defensive-database-programming
Tasuta e-raamat kaitsva andmebaaside programmeerimise kohta. Selle raamatu koodinäited põhinevad MS SQL Serveri andmebaasisüsteemil, kuid üldpõhimõtted kehtivad ka teiste andmebaasisüsteemide korral.
Leht, kus on väga palju erinevaid vabaks kasutamiseks mõeldud andmehulki
https://www.kaggle.com/
Neid saab kasutada masinõppe algoritmide treenimiseks ja katsetamiseks, aga ka selleks, et katsetada erinevaid andmebaasi disaine ja proovida nende andmete põhjal teha päringuid.
On Estonian id-code
https://www.ria.ee/riigiarhitektuur/blog/2014/12/11/on-estonian-id-code/
Huvitav ülevaade Eesti isikukoodi loomise taustast ja kaalutlustest. Muuhulgas väärib tähelepanu tsitaat: Although it has served Estonia well, the system was not perfect. To the extent that, in fact, in the early days several people received the same identification code and it was too deep in the registries before the mistake was discovered. Thus, technically, the id-code in Estonia can not be assumed to be unique. Hea näide, miks on parem asju kohe hästi teha, mitte loota sellele, et hiljem midagi parandada õnnestub.
Physical Database Design Consideration
https://www.databasejournal.com/ms-sql/physical-database-design-consideration/
See artikkel räägib füüsilisest andmebaasi disainist MS SQL Server andmebaasisüsteemi näitel. Kuid artiklis välja toodavad küsimused on üldised ning andmebaasi disainer peab neile vastuse leidma sõltumata kasutatavast andmebaasisüsteemist.
Readings in Database Systems, 5th Edition
http://www.redbook.io/
Üle kümne aasta uus väljaanne. Selles esitavad andmebaasidega seotud teadus- ja arendustöö suurkujud viiteid mõnedele andmebaaside valdkonda palju ja püsivalt mõjutanud teadusartiklitele. Mis peamine, iga peatüki ees on toimetajate kommentaar, milles tutvustatakse artikleid ning kommenteeritakse andmebaasisüsteemide minevikku, olevikku ja tulevikku.
Series of “Bad habits to kick” by Aaron Bertrand
http://blogs.lessthandot.com/index.php/datamgmt/datadesign/series-of-bad-habits-to-kick-by-aaron-be/
Näidetega vürtsitatud nimekiri andmebaasi programmeerijate halbadest harjumustest. Koodinäited põhinevad MS SQL Serveri andmebaasisüsteemil, kuid põhimõtted kehtivad ka teistes andmebaasisüsteemides.
Sharding Pinterest: How we scaled our MySQL fleet
https://medium.com/pinterest-engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f
Shared Nothing Partitioning kasutuselevõtt Pinteresti näitel. Andmebaasidega seotud tegevuste näide \"päriselust\".
Tehnilised artiklid erinevatel andmebaasidega seotud teemadel
https://www.red-gate.com/simple-talk/databases/

TIOBE programmeerimiskeelte populaarsuse indeks
https://www.tiobe.com/tiobe-index/
SQL ja PL/SQL (Oracle rutiinide kirjutamise keel) on seal kõrgel kohal.
Triggers Considered Harmful, Considered Harmful
http://harmfultriggers.blogspot.com/
Ajaveeb, mis on pühendatud trigerite kasutamisest tulenevatele eelistele ja trigerite kasutamisest tulenevatele probleemidele.
Sisukord
SQL
12 tavalist viga või kiiret täitmist takistavat probleemi SQL andmekäitluskeele lausetes
https://hakibenita.com/sql-dos-and-donts

Comparison of different SQL implementations
https://troels.arvin.dk/db/rdbms/
Ernevate SQL andmebaasisüsteemide võrdlus SQL standardi seisukohalt.
DB vs RDF: structure vs correlation
https://videolectures.net/stisemanticsummit2011_boncz_dbvsrdf/
Videoloeng.
Keerukamad SQL SELECT laused
https://devm.io/java/10-sql-tricks-that-you-didnt-think-were-possible-125934
MS Access neid ei toetanud, küll aga saab neid (kas üks ühele või väikese muutmise järel) kasutada PostgreSQLis ja Oracles.
Modern SQL Window Function Questions
https://www.windowfunctions.com
Keskkond, kus saab testida oma teadmisi SQLi aknafunktsioonide kohta.
Näited, kuidas lahendada erinevates programmeerimiskeeltes ühte ja sama ülesannet
https://rosettacode.org/wiki/99_Bottles_of_Beer
Trükkige otsingusse sõna: SQL
SQL standardi erinevad redaktsioonid
https://www.wiscorp.com/SQLStandards.html

The Dangers of using Float or Real Datatypes
https://www.red-gate.com/hub/product-learning/sql-prompt/the-dangers-of-using-float-or-real-datatypes
Ülevaade ujukomatüüpide kasutamisest tuleneda võivatest ümardamise vigadest MS SQL Server andmebaasisüsteemi näitel. See, kas need vead tekivad või mitte, sõltub viisist, kuidas andmebaasisüsteem ujukomatüüpi väärtust sisemiselt salvestab. Erinevates süsteemides võib see olla erinev.
Sisukord
Agiilmetoodikad ja nende kasutamine andmebaaside projekteerimise juures Teema 1
Agile Release Planning 101
http://tommynorman.blogspot.com/2012/09/agile-release-planning-101.html
Lihtsustatud versioon väljalaske planeerimisest
Evolutsiooniline andmebaasi disain
https://martinfowler.com/articles/evodb.html
Agiilsete meetodite kasutamine andmebaaside projekteerimise juures
Lehekülg, kus on viiteid paljudele allikatele agiilse andmebaaside projekteerimise kohta
https://agiledata.org/

The Process of Database Refactoring - Andmebaasi pidevarenduse protsess
https://agiledata.org/essays/databaseRefactoring.html

Sisukord
Andmebaaside ja andmebaasisüsteemide testimine
TPC Transaction Processing Performance Council
https://www.tpc.org/

Sisukord
Andmete turvalisus Teema 5
A Comprehensive Database Security Model
http://database-programmer.blogspot.com/2009/02/comprehensive-database-security-model.html
Andmebaasipõhine turvalisuse tagamise mudelit, mille kohaselt vastab igale rakenduse kasutajale üks andmebaasi kasutaja.
Bobby Tables: A guide to preventing SQL injection
https://bobby-tables.com/php
SQL süstimise rünnaku vältimise võimalused erinevates keeltes
How to spoil the fish with salt and pepper
https://www.martinstoeckli.ch/hash/en/
Hea interaktiivne ülevaade selle kohta:
  1. miks tundlike andmetega infosüsteemis ei tohiks paroolid olla andmebaasis avatekstina,
  2. mida kujutab endast SQL süstimise (SQL injection) rünnak,
  3. miks MD5 ei sobi enam räsiväärtuste leidmiseks,
  4. miks on parooli räsiväärtuse leidmisel vaja kasutada soola ja pipart.

Kui plaanite hoida paroole andmebaasis, siis ei tohi need olla avatekstina, leidmiseks ei tohiks kasutada tavalist MD5 algoritmi ning tuleks kasutada soola.


Kill the Password: Why a String of Characters Can’t Protect Us Anymore
https://www.wired.com/2012/11/ff-mat-honan-password-hacker/

Miks on vajalik parooli räsiväärtuse leidmine ja eelnev parooli soolamine ning kuidas seda õieti teha?
https://www.bentasker.co.uk/posts/blog/software-development/106-the-importance-of-salting-stored-passwords-and-how-to-do-so-correctly.html

Riigikontroll: omavalitsused on IT-alal kui Metsik Lääs! Paljude ametnike meelest on andmekaitse sama arusaamatu kui investeerida turismireisi Marsile
https://arileht.delfi.ee/artikkel/82620547/riigikontroll-omavalitsused-on-it-alal-kui-metsik-laas-paljude-ametnike-meelest-on-andmekaitse-sama-arusaamatu-kui-investeerida-turismireisi-marsile
Ülevaade hoolimatust suhtumisest IT turvalisussesse (sh andmete turvalisusesse) Eesti omavalitsuste näitel 2017/2018 aasta seisuga.
Survive The Deep End: PHP Security
https://phpsecurity.readthedocs.io/en/latest/index.html
Turvaliste PHP veebirakenduste loomisest. Karisid, mille otsa teadmatusest sõita on palju. Muuhulgas on põhjalikult juttu sisendi valideerimisest ja skriptisüstimise ründemeetodist.
Threatsaurus
https://www.sophos.com/en-us/medialibrary/PDFs/other/sophosthreatsaurusaz.pdf?la=en
Hea kõrgtaseme ülevaade ohtudest, mis ähvaravad arvutisüsteeme.
Sisukord
Transaktsioonid Teema 6
How I stole roughly 100 BTC from an exchange and how I could have stolen more!
https://www.reddit.com/r/Bitcoin/comments/1wtbiu/how_i_stole_roughly_100_btc_from_an_exchange_and/
Miks peab ka veebi/rakenduste programmeerija andmebaase hästi tundma?
Not Your Father’s Transaction Processing
https://www.infoq.com/presentations/NewSQL-VoltDB/
Michal Stonebrakeri ettekanne 2012-10-26, kus ta rääkis OldSQL, NoSQL ja NewSQL süsteemidest ning põhjendas, miks on transaktsioonid ning transaktsioonide ACID omaduste tagamine endiselt väga oluline.
PostgreSQL anti-patterns: read-modify-write cycles
https://www.2ndquadrant.com/en/blog/postgresql-anti-patterns-read-modify-write-cycles/
Viga PostgreSQL andmebaasis olevate andmete transaktsioonilises kasutamises, mis võib viia andmebaasi lõpuks ebakorrektsesse seisundisse.
Tehingutöötlust puudutav peatükk veebipõhises andmebaaside õpikus
https://www.geeksforgeeks.org/concurrency-control-in-dbms/?ref=lbp

The problems with ACID, and how to fix them without going NoSQL
http://dbmsmusings.blogspot.com/2010/08/problems-with-acid-and-how-to-fix-them.html
ACID omaduste tagamine andmebaasisüsteemide poolt muudab raskemaks andmebaaside skaleerimise. Artikkel kirjeldab erinevaid viise, kuidas uue põlvkonna andmebaasisüsteemides üritatakse selle probleemiga toime tulla.
Sisukord
NoSQL Teema 9
12-osaline NoSQL teemaline artiklite sari
https://iggyfernandez.wordpress.com/2014/01/06/the-twelve-days-of-nosql-day-twelve-concluding-remarks/
Autoriks Oracle (SQL-andmebaaside) spetsialist, kes käsitleb NoSQL tugevaid ja nõrku külgi.
7 hard truths about the NoSQL revolution
https://www.infoworld.com/article/2289928/7-hard-truths-about-the-nosql-revolution-2.html
Viimasel ajal räägitakse palju NoSQL (Not Only SQL) süsteemidest. Kahtlemata on nendel süsteemidel omad eelised ja kasutusvaldkonnad, kuid on ka palju puuduseid. Käesolev artikkel esitab realistliku vaate praegustele NoSQL süsteemidele.
Content Analytics: Gaining Insight from Your Content with NOSQL
https://www.youtube.com/watch?v=rYeNYvOIMHQ
Ühe NoSQL süsteemi kasutamise näide.
Jepsen: MongoDB stale reads
https://aphyr.com/posts/322-jepsen-mongodb-stale-reads
Jepsen on projekt, mis uurib erinevaid hajussüsteemide loomiseks mõeldud vahendeid. Seekord on uurimise alla võetud MongoDB 2.6.7 ja tulemused on mahlased
Martin Fowleri veebileht NoSQL kohta
https://martinfowler.com/data/index.html#nosql

NoSQL: a non-SQL RDBMS
http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/nosql/Home%20Page
Maailma esimene süsteem, mis brändis ennast nime all NoSQL pole päris see, mida ootate/arvate.
NoSQL Meets Bitcoin and Brings Down Two Exchanges: The Story of Flexcoin and Poloniex
https://hackingdistributed.com/2014/04/06/another-one-bites-the-dust-flexcoin/
Mis juhtub siis, kui puudulikku tehnoloogiat kasutatakse ignorantide poolt
No! to SQL! No! to NoSQL!
http://www.nocoug.org/Journal/NoCOUG_Journal_201308.pdf
Artikkel, mis ilmus viimases Northern California Oracle User Group (NoCOUG) ajakirjas. Alternatiivne ja realistlik vaade SQLile ja NoSQLile.
Pramod J. Sadalage ja Martin Fowleri raamatu "NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence" põhipunktid
https://martinfowler.com/articles/nosqlKeyPoints.html
Selle raamatu kaks eksemplari on Tallinna Tehnikaülikooli raamatukogus.
Sisukord
XML & andmebaasid Teema 9
Is XML the Answer?
https://www.sqlservercentral.com/articles/is-xml-the-answer
Kriitika XMLi kasutamise kohta andmebaasis andmete esitamiseks.
Sisukord
Hajussüsteemid Teema 12
Distributed Databases: Tech Disruption That is Going to Give Media Producers a New Edge
https://www.provideocoalition.com/distributed-databases-tech-disruption-that-is-going-to-give-media-producers-a-new-edge/
Hea ülevaade hajusate andmebaaside eelistest rahvusvaheliste meedia- ja meelelahutusettevõtete näite varal. Kokkuvõte: Artikkel kirjutab, miks on hajusal andmebaasil põhinevad infosüsteemid kasulikud globaalse haardega meedia või meelelahutusettevõtetele (televisiooni või filmikompaniid, mängude tootjad jne). Saateid salvestakse, filmivõtteid tehakse või mänge kirjutatakse üle maailma ja ka osalised paiknevad ümber maailma. Samamoodi paiknevad ümber maailma nende ettevõtete toodangu kasutajad. Artiklis intervjueeritakse meediaettevõtetele ja meelelahutustööstusele teenuseid pakkuva firma TransLattice asutajat. Intervjueeritav on seisukohal, et selliste globaalse haardega ettevõtete korral on hajus andmebaas õige lähenemine ning pakub ettevõttele konkurentsieelist. Andmed saab paigutada lõppkasutajatele lähemale. Seetõttu paraneb süsteemi reaktisooniaeg ning on lihtsam salvestada kõiki lõppkasutaja tegevusi. Vajadusel saab andmetest teha erinevatesse asukohtadesse koopiaid või siis otsustada, et mingeid andmed ei sobi tundlikuse tõttu hoida mingis ühes geograafilises asukohas ja tuleks paigutada kuhugi mujale. Või siis vastupidi, mingid andmed on nii tundlikud, et neid saab hoida vaid tekkimise kohas. Koopiad andmetest parandavad käideldavust, võimalus hoida andmeid ainult ühes kohas võimaldab tegeleda privaatsuse küsimustega, andmete paigutamine lõppkasutajatele lähedale võimaldab parandada süsteemi jõudlust. Ettevõte saab paljude eraldiseisvate andmebaaside "kohale" globaalse vaate üle kõigi nende andmebaaside. TransLattice näeb hajusa andmebaasi kasutamise suure eelisena seda, et väga detailsete transaktsiooniliste andmete salvestamisel saab need paigutada tekkimiskohale lähedal asuvasse andmebaasi. Süsteemi reaktsiooniaeg on parem ning kuna andmed on laiali erinevates kohtades, siis ei teki ka ühte kohta töötlemiseks ja hoidmiseks liiga suurt andmehulka. Kui soovitakse neid transaktsioonilisi andmeid analüüsida, siis saab koormuse jagada erinevate serverite vahel.
Fallacies of distributed computing
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Vääreeldused, millest hajussüsteemide loojad ei tohiks lähtuda (aga praktikas seda paraku teevad).
How the Bitcoin protocol actually works
https://michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/
Bitcoin kui näide hajussüsteemist
Martin Kleppmann | Kafka Summit SF 2018 Keynote (Is Kafka a Database?)
https://www.youtube.com/watch?v=v2RJQELoM6Y
Ettekanne, kus näidatakse, kuidas logipõhist sündmusvoo töötlemise süsteemi nagu Kafka saab kasutada hajussüsteemide realiseerimiseks, saavutades seal ACID omadustega transaktsioonide kasutamisega sarnase tulemuse.
Notes on Distributed Systems for Young Bloods
https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/
Praktiku õpetussõnad hajussüsteemide loojatele.
Please stop calling databases CP or AP
https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html
CAP teoreemi väga hea ülevaade + kriitika
The Log: What every software engineer should know about real-time data's unifying abstraction
https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
Logipõhine arhitektuur, mille põhjal saab edukalt ülesehitada hajussüsteeme.
X-teed tutvustustav video (animatsioon)
https://www.youtube.com/watch?v=Qbe5khu62jg
X-tee võimaldab turvalist andmevahetust erinevate riiklike infosüsteemide vahel (nii riigi sees kui tulevikus ka riikide vahel). Andmed ei pea olema mitte ühes suures superandmebaasis, vaid laiali nende tekkimise süsteemides, kusjuures erinevates süsteemides andmeid ei dubleerida. Kui üks süsteem vajab toimimiseks andmeid, mis on teises süsteemis, siis saab neid küsida X-tee vahendusel. X-tee tagab, et andmed toimetatakse küsijani nii, et keegi neid kohaletoimetamise käigus ei loe ega muuta.
You Can’t Sacrifice Partition Tolerance
https://codahale.com/you-cant-sacrifice-partition-tolerance/
Põhjendus, miks (tulenevalt CAP teoreemist) ei saa hajussüsteemides ohverdada "partition tolerance" omadust.
Sisukord
Andmeaidad Teema 14
Big Data Analytics
https://play.ttu.ee/media/2018/Athanasios_V_Vasilakos/A3X9JE.mp4
Athanasios V. Vasilakose külalisloeng suurandmete analüütikast reedel, 5. oktoobril, 2018.
Data Warehousing Concepts
https://www.1keydata.com/datawarehousing/concepts.html
Andmeaitade ja andmevakkade põhimõisted
DW2.0
https://www.embarcadero.com/images/dm/technical-papers/bill-inmon-data-warehousing-2-0-whitepaper.pdf
Bill Inmoni artikkel andmeaitade teise põlvkonna kohta. Sellistes andmeaitades hoitakse võrreldes esimese põlvkonna andmeaitadega näiteks lisaks ka äri seisukohalt olulisi struktureerimata tekstilisi andmeid.
Suurandmete põhiomadused
https://www.bigdataframework.org/the-four-vs-of-big-data/
The Four V's of Big Data. Visuaalne ülevaade.
The Data Warehousing Information Center
https://www.hotelspiedmont.com/en/dwinfocenter.html

The Kimball Group Reader: Relentlessly Practical Tools for Data Warehousing and Business Intelligence
https://ebookcentral.proquest.com/lib/tuee/detail.action?docID=484827
R.Kimball, M.Ross et. al – The Kimball Group Reader: Relentlessly Practical Tools for Data Warehousing and Business Intelligence. Wiley, 2010. Loetav Tallinna Tehnikaülikooli e-raamatukogus.
Sisukord
SQL koodis probleemide tuvastamise tarkvara Paljud projekti hindamismudeli vead on halvad lõhnad
SQL Enlight
https://sqlenlight.com/
Staatiline koodi analüsaator MS SQL Serveri andmebaasikeele koodi jaoks.
SQLFluff
https://sqlfluff.com/
Avatud lähtekoodiga SQL linter erinevate andmebaasisüsteemide jaoks
SQL koodi analüsaator MS SQL Serveri jaoks
https://documentation.red-gate.com/codeanalysis/code-analysis-for-sql-server
Kirjeldatakse erinevaid reegleid, mille suhtes SQL koodi kontrollida
SQL koodi analüsaator Oracle jaoks
https://documentation.red-gate.com/codeanalysis/code-analysis-for-oracle
Kirjeldatakse erinevaid reegleid, mille suhtes SQL koodi kontrollida
SQL Static Analysis Tools
https://analysis-tools.dev/tag/sql
Erinevad programmid.
Sisukord