~~NOTOC~~ {{prog:images:banner_database.jpg |}} ====== Databaser (RDMS) ===== En relationel database bruges til at gemme og organisere data på en struktureret måde. Data gemmes i tabeller, som minder om regneark med rækker (poster) og kolonner (felter). Hver tabel har typisk en primærnøgle, der entydigt identificerer en række. Relationelle databaser er stærke, fordi tabeller kan forbindes med hinanden via relationer. Det gør det nemt at arbejde med store mængder data uden gentagelser og samtidig bevare overblik og datakvalitet. Som programmør bruger man databaser til fx at gemme brugere, beskeder, produkter eller resultater fra et program. Man arbejder med databasen ved hjælp af SQL (Structured Query Language) til at oprette tabeller, indsætte data og hente præcist de oplysninger, man har brug for. I dette forløb kommer I til at arbejde med __MariaDB RDMS__. ---- ==== Teori ==== * [[rdms_og_navngivning|Navngivning]] * [[mariadb_og_chinook_setup|MariaDB & Chinook setup]] * [[prog:db_og_passwords|Opbevaring af passwords]] * Introduktion til RDMS * Introduktion til SQL * [[database_keys|Constraints (Primary key, Foreign key, ..)]] * [[https://www.youtube.com/watch?v=27VeGN1h0Pw|Introduction to Database Normalization]] Video (05m08s) * SQL Joins * [[https://www.youtube.com/watch?v=5Rd2atcDR4s|SQL Foregin Keys]] * [[https://www.guru99.com/er-diagram-tutorial-dbms.html|E.R. Diagrammet]] * [[https://www.youtube.com/watch?v=wMgirP7z4k8|Entity Relationship Diagram (ERD) Tutorial and EXAMPLE]] (epic mustache) ---- ==== Slides ==== * {{prog:slides:databaser_intro.pdf |Introduktion til Databaser}} * {{prog:slides:databaser_sql_1.pdf |Introduktion til SQL}} SELECT,INSERT,UPDATE, DELETE * {{prog:slides:databaser_sql_joins.pdf |SQL Joins}} * {{prog:databaser:databaser_constraints.pdf |Database Constraints}} Keys m.m. (PK,FK) * {{prog:slides:databaser_normalisering.pdf |Normalformer}} 1NF, 2NF og 3NF * {{prog:slides:databaser_er_diagram.pdf |E/R diagrammet - Crow's Foot Notation}} ---- ==== Øvelser ==== * [[ex_sql_level1|SQL Level 1]] Basic CRUD * [[ex_sql_level2|SQL Level 2]] SQL Joins * [[ex_sql_constraints|SQL Constraints]] (Keys m.m.) * [[prog:db_normalformer|Normalerformer]] 1NF, 2NF og 3NF * {{prog:docs:databaser_er.pdf |E/R Diagram : TV-Station}} * {{prog:docs:database_er_1.pdf |E/R Diagram : Universitet}} * [[ex_database_in_processing|Database Query fra Processing]] * [[prog:sql_campingplads|FjellRo Camping]] * [[prog:sql_campingplads|Øvelse: FjellRo Camping]] * [[prog:sql_camping_opg|SQL for FjellRo Camping]] * [[prog:sql_camping_opg|Øvelse: SQL for FjellRo - Inserts]] * [[prog:sql_camping_opg2|Øvelse: SQL for FjellRo - Udtræk SELECT/JOINS]] * [[prog:mariadb_og_csharp|MariaDB & C#]] * [[mariadb_og_processing|MariaDB & Processing]] * [[https://prog.abildgaard.com/doku.php?id=sql_campingplads|FjelRo - CampingPlads]] ---- ==== Materiale ==== * [[https://mariadb.com/downloads/community/|MariaDB database server]] * [[https://mariadb.com/wp-content/uploads/2021/08/mariadb-standard-developer_cheat-sheet_1113.pdf|MariaDB SQL Cheat Sheet]] * {{prog:docs:chinook.zip |Chinook Dataset}} * Chinook Relations Oversigt * {{prog:images:chinook_relation.png?250}} ---- ==== Test dig selv ==== ----