Thinking of development



Vergelijkbare documenten
Databases - Inleiding

Koppeling met een database

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

Informatie & Databases

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

SQL & Datamodelleren

Tinus Plotseling MySQL

Les 2 Eenvoudige queries

Les 10 : Aanmaken van een database (deel2).

Relationele Databases 2002/2003

Relationele Databases 2002/2003

Relationele Databases 2002/2003

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Data Warehouse Script Generator Doel

SQL SERVER Werking van Database Snapshots

12. Meer dan één tabel gebruiken en sub-queries

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

6. Het maken van een database

Thinking of development

Les 11 : Basis SQL (deel2).

1. * Database worden vaak gebruikt in Client-Server architectuur.

Zelftest Informatica-terminologie

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

Sparse columns in SQL server 2008

Module 1 Programmeren

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober A. Snippe ICT Lyceum 1

Een introductie tot gegevensbanken

Technische nota AbiFire5 Rapporten maken via ODBC

Ontwerp. <naam applicatie>

DATAMODEL GAME EVENT DATABASE ELTON GONÇALVES GOMES V1-10

Inhoudsopgave Inleiding 7 Hoofdstuk 1 Introductie databases 9 Hoofdstuk 2 Hoe werkt het? 13 Hoofdstuk 3 Database versus Dataset 61

Technische nota AbiFire Rapporten maken via ODBC

Kadaster Data Platform. Architectuur & techniek

[TOETS SQL INLEIDING]

SQL / Systeemanalyse

Data Definition Language

Inleiding Databases en Data Base Management Systems Tabellen Wat is SQL?... 5

Installatie SQL Server 2014

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Handleiding. CardAccess Database Utility CA4000. Aanvullende informatie. Versie: 1.0

LearnOSM. PostgreSQL & PostGIS. PostgreSQL en PostGIS installeren. Bijgewerkt

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

En hoe gaan ze dit allemaal terugvinden?

Technisch Ontwerp W e b s i t e W O S I

Business Intelligence. Toepassing BI Database en Datawarehouse BI proces BI Organisatie Implementatie BI

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Het omzetten van een ER-diagram naar SQL

Introductie (relationele) databases

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

PHP & MySQL. Studievaardigheden Frank Takes (ftakes@liacs.nl) LIACS, Universiteit Leiden

Datamodelleren en databases 2011

Databases en SQL Foundation (DBSQLF.NL)

Tools voor canonieke datamodellering Bert Dingemans

Structured Query Language (SQL)

Van CaseTalk naar een database in SQLite studio

Hoofdstuk: 1 Principes van databases

SQL datadefinitietaal

Plan van aanpak Door: Jeroen Corsius en Mitchell Diels. GameShop

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Zonnepanelen Hoe krijg je de data op je website?

8. De invoer van gegevens

Installatie SQL Server 2012

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS

PHP-OPDRACHT SITE BOUWEN

Kassa systeem. Handleiding. Table of Contents

Friesland College Leeuwarden

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Lekker snel XML met SQL (.nl)

Een website maken met databasetoegang.

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Werkinstructie. Technisch Beheer. uitvoeren MAP scan. voor. Datum: 15 oktober Versie: 1.0

SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN. - Workshop SharePoint 1

Hoofdstuk 6. PHP Data Objects. Cursus PHP & MySQL Groep D

PHP en een MySQL database.

Tentamen Databases voor iku

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

INFITT01 - Internettechnologie WEEK 8

Van een ER-diagram naar een database specificatie in SQL

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

8. Koppeling met een database

Oracle Rolling Upgrades met SharePlex Systems Consultant Quest Software Nederland 9/

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen:

LINUX ZORIN. een alternatief voor MS Windows

Databanken - les 2.

Transcriptie:

Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings

Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42

Opdracht tussenstand Slides van vorige week: #fail Let wel: het state diagram wat je beschrijft gaat om de state van de software van het project! State diagram!= flowchart 3/42

State diagram is geen flowchart In een flowchart beschrijf je de opeenvolging van acties Eigenlijk pseudocode, maar dan grafisch Een flowchart beschrijft acties Je zou kunnen zeggen: Vanuit de gebruiker 4/42

Dit is een flowchart 5/42

State diagram!= flow diagram In een statediagram beschrijf je de opeenvolging van states Een state is passief Heeft in principe geen begin of eind, het is gaande Vergelijk: - - "Ik ben vrolijk" versus "Ik lach", "Ik ben aan het vechten" vs. "ik deel een dreun uit" Een state diagram is vanuit de machine geredeneerd 6/42

Dit is een state diagram 7/42

Observer pattern Zijn daar nog vragen over? :-) Belangrijkste les: Loose coupling is goed Voor de techneuten: youtube heeft veel uitleg 8/42

Databases

Wat is een database? A database is an organized collection of data for one or more purposes, usually in digital form. source: Wikipedia 11/42

"Data?" Meetwaardes Met de hand ingevoerd Het telefoonboek Webshop: Producten Fotocollecties Facebook 12/42

Wat is een database? Functioneel - - - Gestructureerde manier van opslag van informatie Manieren om data erin op te slaan en op te vragen ("query'en") Operationeel - - - - Altijd beschikbaar Betrouwbaar Snel Backup / restore 14/42

Soorten databases Relationele databases Object-databases Graph databases Key/value stores SQL vs. NoSQL databases 15/42

Relationele databases Meest gebruikte databasesoort Grote Namen: Oracle, MS SQL Server, IBM DB/2,... Open source: MySQL, sqlite, Postgres... Werken allemaal met SQL Tabellen staan centraal Er liggen relaties tussen tabellen 16/42

Je games collectie Tabel: game Game Jaar Platform Publisher GTA: Vice City 2002 Windows Rockstar Black & White: Creature isle 2002 Windows Lion head 17/42

en natuurlijk hebben ook databases weer diagrammen 18/42

Database diagram, versie 1 Een database diagram toont het ontwerp van je database, ook wel het database schema genoemd 19/42

Intermezzo: Diagram-tools Dia - gratis, simpel en betrouwbaar....wel lelijk LibreOffice Draw - net ietsje meer features Mac only: Omnigraffle - very slick Windows: Microsoft Visio - features+++ 20/42

Je games collectie, vervolg Tabel: game Game Jaar Platform Publisher GTA: Vice City 2002 Windows Rockstar Black & White: Creature isle 2002 Windows Lion head Black & White 2 2005 Windows, OSX Lionhead Spore 2008 Win, Wii Maxis Data wordt inconsistent ingevoerd... Wat nu als ik een lijstje wil van alle games die op windows draaien? Hoe identificeer ik een game? 21/42

We voegen een primary key toe Tabel: game Id Game Jaar Platform Publisher 1 GTA: Vice City 2002 Windows Rockstar 2 Black & White: Creature isle 2002 Windows Lion head 3 Black & White 2 2005 Windows, OSX Lionhead 4 Spore 2008 Win, Wii Maxis De key heet in dit geval "id" (van: identifier). Dat is een conventie. Zo'n identifier noemen we ook de Primary Key van een tabel. Deze moet altijd uniek zijn voor iedere rij in een tabel. 22/42

Een tabel voor publisher Tabel: publisher Id Naam 1 Rockstar 2 Lionhead 3 Maxis Tabel: game Id Game Jaar Platform Publisher Id 1 GTA: Vice City 2002 Windows 1 2 Black & White: Creature isle 2002 Windows 2 3 Black & White 2 2005 Windows, OSX 2 4 Spore 2008 Win, Wii 3

Foreign key We hebben dus nu een verwijzing van de ene tabel naar de andere Dat heet een "foreign key" "Verwijzing" == "relatie" - vandaar de naam relationele database Waarom handig: Gegevens niet dubbel opslaan Voorkom typfouten / user input fouten 24/42

Database schema, versie 2 Many-to-one: many games have the same (one) publisher 25/42

Many-to-many We moesten nog wat met onze platforms doen... Tabel: platform Id Naam 1 Windows 2 OSX 3 Wii - Maar... games kunnen op meerdere platforms zijn uitgebracht - Many games have many platforms Een foreign key (many-to-one) werkt hier dus niet! 26/42

Database schema, versie 3

Hiervoor maken we een koppeltabel Tabel: game_to_platform Game Platform GTA: Vice city Windows Black & White: Creature isle Windows Black & White 2 Windows Black & White 2 OSX Spore Windows Spore Wii 28/42

.. maar dan met ips ipv namen: Tabel: game_to_platform Game Id Platform Id 1 1 2 1 3 1 3 2 4 1 4 3 29/42

Hoe ziet een database eruit? Een database heeft eigenlijk geen gezicht. Het is meestal een programma, een server die op de achtergrond draait 31/42

Real world Probeer zelf uit: Demo Mysql interface 32/42

SQL: Structured Query Language Structured: Je data is gestructureerd Query: Je gebruikt het om data op te vragen Language: Het is echt een taaltje Opdrachten in SQL noem je: Queries Alle relationele databases "verstaan" SQL, ze hebben een SQL interface In praktijk gebruik je SQL nooit direct maar altijd via een andere programmeertaal, bijvoorbeeld PHP. 34/42

Een directe SQL interface 35/42

SQL Geef me alle games SELECT*FROMgame Alle games uit 2002 SELECT*FROM game WHERE year = 2002 36/42

Algemene structuur SELECTvelden FROMtabelnaam ( WHEREconditie ) ( ORDER BYveld ) 37/42

Nog meer SQL INSERT INTO...- voor het toevoegen van data UPDATE...- voor het updaten van data DELETE...- voor het verwijderen van data CREATE TABLE xx (...)- aanmaken van een tabel DROP TABLE xx (...)- verwijderen van een tabel SQL tutorial 38/42

Normalisatie Het "opschonen" of opsplitsen van de database zoals we dat net hebben doorlopen heet normalisatie Afweging tussen data-duplicatie en complexiteit Je kan het ook overdrijven!!!! 39/42

Databases samenvatting Gestructureerde opslag Denk in losse tabellen (ook wel: entiteiten) Hierbij gebruik je normalisatie Verschillende soorten interfaces SQL is de meest algemene interface 40/42

Database tips MySQL - meest gangbare database op het web PHP voorbeeld SQLite - voor embedded databases in andere programma's Voorbeelden in C#, in Processing 41/42

That's all, folks! a.s. dinsdag: deadline opdracht statemachines Volgende college: 14 maart 2013, 15:10 42/42