Software Projekt NoSQL vs RMDB
|
|
|
- Bente Sidsel Olesen
- 10 år siden
- Visninger:
Transkript
1 Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark , , Gruppe Side 1 af 13
2 Indholdsfortegnelse 1 Motivation Hypotese Metode Analyse og resultat Domænemodel Krav Domænemodellen NoSQL databaser Valg af Document Store MongoDB s datastruktur Datastruktur Referencing or Embedding MongoDB skema eksempler Enkelt reference Dobbelt reference Embedded Generer MongoDB data Performance værktøj mod MongoDB MongoDB profiling værktøj C# som profiling værktøj Valg af profiling værktøj Querys performance mod MongoDB Inserts Selects Updates Deletes Relateret arbejde Konklusion Referencer Side 2 af 13
3 1 Motivation I denne rapport vil der blive kigget på fordelene og ulemperne ved at bruge en NoSQL database, med en relationel datastruktur (Normaliseret). Den normaliseret struktur vil blive sammenlignet med den struktur som NoSQL databasen er bygget til, på performance grundlag, i forhold til Selects, Inserts og Updates. 2 Hypotese NoSQL er en databaseteknologi, som er udviklet til løsning af et meget specifikt problem: meget store datamængder distribueret over mange noder med en simpel datastruktur. RDBM er mere allround og kan lagre mange forskelligartede og komplekse datastrukturer. Det er trivielt, at RDBM er velegnet til at lagre datastrukturer med mange relationer, men kan vi finde et skema, som muliggør at samme type datastruktur kan gemmes effektivt i en NoSQL database? Givet datastruktur A i Figur 1, vil det være muligt at vælge skemaer, som henholdsvis favoriserer opdateringer kontra forespørgsler? Vil det være muligt at finde et skema, som går på kompromis så rimelig performance kan tilsikres i begge scenarier? Figur 1 - Datastruktur A 3 Metode Ved at fremstille forskellige skemaer for henholdsvis en-til-en, en-til-mange og mange-til-mange, både i form af normaliseret data struktur og ikke normaliseret data struktur, vil der blive kigget på performance fordelen via inserst, updates og selects. Først skal der kigges på hvilken NoSQL database kan bruges til denne sammenligning. Hvilken NoSQL database der understøtter normaliseret data på en måde som ses anvendelig, men stadig har fordel i sin NoSQL baggrund. Når NoSQL databasen er valgt, skal der konstrueres forskellige eksempler på relations skemaerne, både i en normaliseret og ikke normaliseret form. Side 3 af 13
4 Disse tabeller skal efterfølgende fyldes med tilfældigt data, som kan repræsentere et virkelig miljø, med flere tusinde rækker. Efterfølgende skal der laves gennemsnitsmålinger på inserts, updates og selects, hvor hastighederne sammenlignes. Slutteligt vil der blive analyseret på om der evt. kan optimeres på nogle af tabellerne, for at lave et kompromis, så der måske kan opnås en optimal performance inden for alle 3 query typer. 4 Analyse og resultat 4.1 Domænemodel Krav Før vi lægger os fast på en domænemodel, vil vi opstille nogle krav, som vi har til denne. Vores hovedfokus er relationer, hvorfor vi vil sikre, at den indeholder de tre typer relationer: 1. En til en 2. En til mange 3. Mange til mange Når vi har en model, som indeholder de tre type relationer, som man arbejder med i en RDBM, kan vi betragte denne model som repræsentativ for alle de modeller, som kan laves i en RDBM Domænemodellen Figur 2 Entity diagram Her har vi et databasediagram, som viser relationerne mellem tabeller i et simpelt ordresystem. Vi har begrænset kolonnerne til et minimum, da de er mindre interessante i denne sammenhæng. Et sådant databasediagram er imidlertid ikke særlig godt til at illustrere relationer og entiteter i en domænemodel. Til dette formål har vi et Entity-Relation-diagram i stedet for. Side 4 af 13
5 Figur 3 ER diagram For at bevare vores ER diagram simpelt har vi undladt attributes, hvor de ikke har nogen betydning. Vi har dog medtaget Quantity på Contains, da den kan have betydning og for at demonstrere at der er forskel på Contains og IsResponsibleFor. Lad os tjekke, som vi har de tre slags relationer, som vi har brug for. 1. En til en: LogsOnWith er en typisk relation, som benyttes i RDBM for at undgå null værdier. En kunde kan sagtens være oprettet i ordresystemet, men hvis web frontenden ikke har været benyttet har kunden intet login. 2. En til mange: Has er et typisk eksempel mellem en kunde og ordre. En kunde kan have mange ordrer, men hver ordre har kun en kunde. 3. Mange til mange: Contains og IsResponsibleFor er begge eksempler på mange til mange relationer og viser henholdsvis relationerne mellem ordre og produkt samt kunde og kundeansvarlig. Der er dog forskel på dem. Contains indeholder antal, som i den RDBM bare gemmes i den relationstabel, som benyttes i en mange til mange relation. Vil der være forskel på, hvordan vi kan løse Contains og IsResponsibleFor i MongoDB? 4.2 NoSQL databaser Udvalget af NoSQL databaser er et voksende område, hvor 4 af de mest brugte typer af NoSQL er [Wiki NoSQL]: - Key-Value store - Document store - Graph - BigTable Side 5 af 13
6 Efter at have kigget på de forskellige typer af NoSQL, er valget faldet på Document Store typen. Dette skyldes blandt andet, at typen ville være mulig til at repræsentere en relationel database struktur. Dokument strukturen gør det muligt at benytte foreign key s til at sammenkæde flere dokumenter og derved normalisere data strukturen. Vi vil kigge nærmere på Key-Value store og Document store, da disse gemmer data i en datastruktur, som minder om RDBM. RDBM gemmer objekter i tabeller som kan have en unik nøgle Key-Value stores gemmer objekter med en unik nøgle Document stores gemmer dokumenter med en unik nøgle Det er muligt at lagre relationer i såvel Document stores som Key-Value stores, idet relationen opnås ved at gemme fremmednøglen i objektet/dokumentet. Den afgørende forskel på de to type NoSQL databaser er, om data er gemt i en struktur, som er kendt for databasen. Key-Value stores bruger typisk objekter, som skal læses op i hukommelsen før indholdet kan fortolkes. Document stores benytter dokumenter, hvis indhold kan fortolkes af databasen. Dette bevirker, at der kan laves forespørgsler, som inkluderer alle de felter, som findes i dokumentet og herudover kan der også laves indekser på de forskellige felter, så forespørgselshastigheden kan forøges, hvis der er andre felter end nøglen, som bliver brugt. Mulighederne i Document stores minder således mest om det, som er muligt i RDBM, hvorfor vi vælger denne type i vores analyser Valg af Document Store Der findes flere forskellige Document Store database typer. En liste af hvilke Document store databaser der findes, kan ses i tabellen her under [Wiki NoSQL]: Tabel 1 NoSQL document databaser Side 6 af 13
7 Ud af de mange muligheder er valget faldet på MongoDB af 2 hovedårsager. 1. I forbindelse med vores undervisning er MongoDB blevet brugt og dette har skabt kendskab til brugen af MongoDB som database og dens skema struktur. 2. MongoDB har et C# interface, som er det foretrukne sprog til implementering af et stub program, til at fylde dummy data i databasen MongoDB s datastruktur MongoDB bruger BSON objekter, til sin dokument struktur. BSON er en sammensætning af Binary og JSON [BSON]. BSON understøtter en del typer, så som Intergers, Doubles, Strings, Objects, Arrays og flere. Dette gør at det er muligt at repræsentere de samme typer som i en RDBM. MongoDB understøtter desuden B-Tree s til indeksering af data. Selve dokumentstrukturen er bygget op omkring key til value, som ses i billedet her under: Figur 4 MongoDB dokument struktur Et eksempel på et dokument med flere typer, kan ses i billedet under: var customer = { _id: 1, name: Alan petersen, address: Loop 1, Californien, username: AlanUsr, password: pass1234, responsible: { employeeid: 10, firstname: Jens, lastname: Johnson }, orders: [ { orderid: 30, date: new Date( Jun 01, 2010 ) }, { orderid: 31, date: new Date( Jun 04, 2010 ) } ] } Side 7 af 13
8 Tabel 2 - MongoDB skema eksempel Som det kan ses indeholder feltet responsible et dokument som value og feltet orders indeholder et array af dokumenter. MongoDB s datastruktur understøtter at der er dokumenter i dokumenter Datastruktur Referencing or Embedding Ved design af MongoDB dokumenter (skemaer), bruges enten Referencing eller Embedding. Dette er kort sagt, om dataen gemmes normaliseret eller denormaliseret. Embedding Embedding er til ikke normaliseret data struktur, for at opnå performance når man laver søgninger dataene. Embedding skal helst bruges når der er tale om: - Contains relationer, som i f.eks. en-til-en relationer. - En-to-mange, hvor mange relationerne, helst skal ses i sammenhæng med den ene. Dette kunne f.eks. ses som en bruger, som indeholder alle lån af film fra blockbuster. Fordelene ved at bruge embedding er hurtigere læsninger og mulighed for at lave opslag fulde dataopslag med en forespørgsel. Dog er der ulemper, så som at et dokument må ikke fylde mere end BSON s maximale dokumentstørrelse på 16Mb. Her kan dog bruges GridFS i stedet for ved store datamængder. Referencing Referencing giver muligheden for at lave relationer mellem forskellige dokumenter. Dette gør det muligt at normalisere sin data. Dette giver kort sagt muligheden for at lave foreign key relationer, som kendes fra RDBM. Referencing skal helst bruges når der er tale om: - Når embedding ikke giver læsnings performance, men bare laver data dupletter. - Ved komplekse mange til mange relationer. Fordelene ved referencing, er at det er muligt at modulere mere komplekse datarelationer og gør det nemmere at opdatere data. Ulemperne er derimod mere arbejde af klienten ved at skulle lave flere queries for at få hele sit udtræk. 4.3 MongoDB skema eksempler Vi er kommet frem til 3 MongoDB dokumentskemaer over den valgte domæne model (se Figur 2) Enkelt reference Enkelt reference er det skema som ligner det rationelle domæne mest. Her kender customer til employee, via employee s _id, som er gemt under customer s responsibles array. Side 8 af 13
9 Fordelen er at man undgår redundant data og skemaet bliver enklere at arbejde med, da der kun er referencer til id erne på de andre tabeller. I figuren (Figur 5) her under, kan ses de informationer de forskellige skemaer indeholder. employee customer order product firstname:string lastname:string name:string address:string username:string password:string responsibles: int[] orders:int[] date: datetime orderitems:orderitem[] orderitem quantity: int productid: int name:string ean:string price:double Figur 5 - Eksempel på brug af enkelt reference Dobbelt reference En udvidelse til enkelt reference er dobbelt reference, hvor der er referencer begge veje. Dette vil sige at f.eks. kender customer id erne på order i enkelt reference, men order kender ikke noget til customer. Ved dobbelt reference, kender order også til customer id er. Fordelene er, at det muligt f.eks. at finde alle ordrer til en kunde uden at skulle slå op i customer. Ulemperne er dog at der skal holdes styr på id erne i to skemaer. I figuren (Figur 6) her under, kan ses de informationer de forskellige skemaer indeholder. employee customer order product firstname:string lastname:string customers:int[] name:string address:string username:string password:string responsibles: int[] orders:int[] date: datetime customerid:int orderitems:orderitem[] orderitem quantity: int productid: int name:string ean:string price:double orders:int[] Figur 6 - Eksempel på brug af dobbelt reference Side 9 af 13
10 4.3.3 Embedded Embeddede skemaer er bygget som ét stort skema præcist som MongoDB er designet til. Fordelene er at dataene er samlet et sted. F.eks. kan man finde alle employee s under den kunde man kigger på og der undgåes derved at skulle lave et ekstra opslag, for at hente denne information. Ulemperne er dog redundant data, da f.eks. to employees kan have ansvar for den samme kunde. Dette kan skabe problemer ved opdateringer, da man skal finde alle steder, hvor den ansatte findes og opdatere. I figuren (Figur 7) kan ses de informationer som de forskellige skemaer indeholder. customer name:string address:string username:string password:string responsibles:employee[] employee firstname:string lastname:string orders:order[] order date: datetime customerid:int orderitems:orderitem[] orderitem quantity: int name:string ean:string price:double Figur 7 - Eksempel på brug af embedding 4.4 Generer MongoDB data For at have noget data at arbejde på, har vi lavet en C# applikation, som generer data der kan anses for at være et eksempel på realistisk data. Med realistisk data menes der, at felterne har data og koblingen mellem ordre og kunder er skiftende. Ergo har alle kunder ikke samme antal ordre. 4.5 Performance værktøj mod MongoDB Til at lave målinger på queries mod MongoDB databasen, er der flere muligheder: - MongoDB shell (MongoDB indbygget værktøj). - C# querys med stopur tidsmålinger. - Andre programmerings sprog. Side 10 af 13
11 4.5.1 MongoDB profiling værktøj MongoDB har indbygget et profilings værktøj [MongoDbProfiling], som gør det muligt at se performance af sine queries. Dette giver et reelt indblik i hastigheden for en query for at finde noget data. Værktøjet For at starte profilering for en Shell instans, skal følge scripts køres når man starter sin shell. db.setprofilinglevel(2); For at se de 10 sidste profileringer for en given collection, skal følgende scripts køres. db.system.find( { ns: <DatabaseNavn>.<Collection> } ).limit(10).sort({ ts: -1 }).pretty(); Et eksempel på dette kan ses her under: db.setprofilinglevel(2); db.product.find(); db.system.profile.find( { ns: OrderingSemi.Product } ).limit(1).sort( { ts: -1 }).pretty(); Ud fra dette kan query tiden ses under feltet millis, som i dette tilfælde er 1 ms. Side 11 af 13
12 Fordele og ulemper Værktøjet givet et nemt og overskueligt billede af de enkelte querys på de forskellige collections. Dette gælder alle queries mod databasen, som også gælder MapReduce funktioner. Ulempen er dog at det ikke giver et billede ud fra det værktøj man bruger, som f.eks. C# C# som profiling værktøj C# har ikke noget værktøj til at lave performance på MongoDB databaser, men vi har dog valgt at anvende C# s indbygget stopurs klasse (StopWatch). Dette gør det muligt at lave tidsmålinger rundt omkring queries mod databasen, som kan ses i et eksempel herunder: var sw = new Stopwatch(); var query = Query.EQ("Orders.OrderItems.Ean", ean); sw.start(); var count = this.customer.find(query).count(); sw.stop(); return sw.elapsedmilliseconds; Tabel 3 - Eksempel på anvendelse af C# StopWatch Dette giver tiden for MongoDB database om at finde det data man laver en query efter. Herefter kommer der ofte noget data mapning til objekter. Dette vil der dog ikke blive taget højde for i dette projekt, da der kigges på tiden af databasen Valg af profiling værktøj MongoDB s indbygget profiling værktøj er simpelt og lige til at bruge, men dette er ikke helt praktisk, når der skal kigges på reference tabeller, da der så skal laves MapReduce funktioner. Her valgte vi at bruge C#, da der kan laves tidsmålinger på at slå op i en tabel, hvorefter der laves queries mod en anden tabel med data fra den første. 4.6 Querys performance mod MongoDB Inserts Selects 1. Find antal produkter ud fra en ordre a. Done 2. Find alle produkter (distinct) a. Done 3. Find all kunder, find hver ordres samlede pris 4. Find alle kunder, som har købt EAN a. Done Side 12 af 13
13 db.customer.find({'orders.orderitems.ean':"570014"}); Nye forslag 5. Map-Reduce for at finde hvor mange der er solgt af ean x Updates 1. Øg prisen med 10% på EAN X 2. Ændre navnet på ansat X Deletes 1. Slet kunde og dermed også tilhørende ordrer og orderitems 5 Relateret arbejde Links til læsning (intern brug): Beksrivelse (MongoDB) One to Many One to One Data model tanker Glossary Lidt af det hele Lidt af det hele mere Link Konklusion 7 Referencer [Wiki NoSQL] [BSON] [MongoDbProfiling] Side 13 af 13
Database optimering - Indeks
Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,
Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125
Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...
Database for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Data lagring. 2. iteration (implement backend)
Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering
Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails
Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med
Views etc. Databaser
Views etc. Databaser Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger
Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1
Projekt 1 Database Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1 CREATE TABLE IF NOT EXISTS `3sempro1`.`cu `customer_id` INT(5) NOT NULL AUTO_INCR `name` VARCHAR(45) NULL DEFAULT
Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4
Projekt Database, Gruppe 4A 0 Projekt 1, 3. Semester D A T A B A S E Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 1 Fakta-ark Klasse MulA13, Gruppenummer: A4 Gruppemedlemmer: Amalie Ardahl
Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman [email protected]. Dan Eskildsen [email protected]
Projekt database 3 Semester - Mul a Projekt 1 Yaser Osman [email protected] Dan Eskildsen [email protected] Ammar Al-Basri [email protected] Emre Kandemir [email protected] Lotte
Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.
Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i
DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order
DOCUMENTATION FULLY DRESSED USE-CASE Use-case: Process Order Omfang og niveau: Dette omhandler en ordre der går gennem systemet Primær aktør: Sælger Pre betingelser: At der ikke er registret kunder Post
Brugervejledning til databrowseren
Brugervejledning til databrowseren Indholdsfortegnelse Indledning...2 Hvordan tilgås browseren og api et...2 Databrowseren...2 Søgning...2 Visning...4 Features i listevisningen...4 Detaljeret visning...5
DATABASE Projekt 1-3. semester
DATABASE Projekt 1-3. semester Gruppe 2- CLmul-a12e Projekt URL http://www.lucasperch.dk/projekter/database.pdf Gruppe 2 Lucas Perch-Nielsen [email protected] http://lucasperch.dk/skole.php Niclas
! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.
Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:
En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin
En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin Trin 1: Lav en Domain model Opgave beskrivelse - Scandic hotel kæde Lav en domain model af Hotel-kæden.
! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.
Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:
Eksamen, DSDS, efterår 2007
Eksamen, DSDS, efterår 2007 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech og Martin Elsman IT Universitetet i København 7. januar 2008 Alle hjælpemidler er tilladte, dog ikke
3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015
PROJECT DATABASE 3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 Ved at underskrive dette dokument bekræfter vi, at det indsendte materiale alt sammen er vores eget materiale og arbejde. Andreas
De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML
SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en
Introduktion til programmering
Introduktion til programmering Databaser Uge 37 Computer Science, kap 9. Hugh Darwen: what a database really is, G. Riccardi: Princples of database systems, kap 2., kompendium. Plan Oprette jer på IMV
Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Introduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Databaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Database. Pr jekt. Hold CLmul-a14e Gruppe 3 3. semester 2015. Vejledere: Tue Becher Ivan R. Frederiksen
Database Pr jekt Hold CLmul-a14e Gruppe 3 3. semester 2015 Vejledere: Tue Becher Ivan R. Frederiksen Indholdsfortegnelse 1. Problemformulering 2. ER-diagram 3. Attribut-tabel 4. Use Case-model 5. Use Case
Database design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
PHP 3 UGERS FORLØB PHP, MYSQL & SQL
PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at
DATABASE - MIN MUSIKSAMLING
DATABASE - MIN MUSIKSAMLING I dette forløb skulle vi lære om databaser, som bruger sproget SQL. SQL står for Structured Query Language. Det bruges til at vise og manipulere data, gemt i en database. I
Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5
Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:
Object-Relational Mapping
Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel
Indholdsfortegnelse for kapitel 2
Indholdsfortegnelse for kapitel 2 Kapitel 2. Analyse.......................................................... 2 Analyse af 2.1...................................................... 2 Analysen af Database.................................................
Skriftlig opgave. Designtanker i database-nære systemer
Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design
Database. lv/
Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde
Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0
Hvad er en relationsdatabase? Odense, den 19 januar 2004 Version 10 Program for 6 kursusdag: Databaser 0900-0945 Hvad er en relationsdatabase? -1045 Opgave om normalisering 1100-1145 Eksempel på database
Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON
Data load og udtræk 2. iteration: implmentation (test af backend) 1 PHP mysql Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON 2 Data udtræk PHP mysql: Processen 1. Forbind til MySQL server
Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services
Sporbarhed og Rapportering i Quality Center Kim Stenbo Nielsen NNIT Application Management Services Indhold INTRODUKTION Hvem er jeg Hvad vil jeg fortælle om QC std. rapporteringsfaciliteter EXCEL RAPPORTER
Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database
Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et
Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen
Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)
Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787
Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach ([email protected]) 2002
Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach ([email protected]) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse
Introduktion til SQL
Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke
Skriftlig eksamen i kurset. Informationssystemer
6. semester sundhedsteknologi Skriftlig eksamen i kurset Informationssystemer Der er 3 timer til at besvare opgaven. Alle hjælpemidler er tilladte. Skriv kort og præcist. Referer gerne til kursuslitteraturen.
PHP Snippets. De små korte. Skrevet af Daniel Pedersen
PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk
Introduktion til programmering
Introduktion til programmering Databaser Uge 38 L. Ingemann: SQL databaser på nettet, kap 2-4. Kompendium L. Ingemann: SQL databaser på nettet, kap 6-20, Kompendium Sidste gang Databaser Relationelle databaser
Øvelse 9. Klasser, objekter og sql-tabeller insert code here
Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til
Datalagring og formater
Datalagring og formater IT Universitetet i København 4. januar 2011 Eksamenssættet består af 6 opgaver med 15 spørgsmål, fordelt på 11 sider (inklusiv denne side). Det anbefales at læse opgaverne i rækkefølge,
Indholdsfortegnelse for kapitel 3
Indholdsfortegnelse for kapitel 3 Kapitel 3 Design............................................................ 2 Database........................................................... 3 ER-diagram.................................................
Projekt: Database. Multimedia Design: Semester 3 - projekt 01. Sabine Larsen [email protected]. Anastasia Keller cph-ak186@cphbusiness.
Anslag: 21284 Multimedia Design: Semester 3 - projekt 01 Projekt: Database Projektperiode: 07. September 20. September 2015 Gruppe nummer: MulB07 Vejledere: Ivan Rosenvinge Frederiksen & Tuje Becher MULA
DOtAB. Teknisk rapport
DOtAB Teknisk rapport Indholdsfortegnelse Introduktion... 1 Systemarkitektur... 1 Teknologier... 1 Platforme for mobile enheder... 1 Kommunikations interfacet... 2 Udviklingsmiljø... 2 IDOtAB (service
DB undervisning 01-01
Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data...
Introduktion til OPC Access
Introduktion til OPC Access OPC Access anvendes til at kommunikere med jeres produktionsudstyr via OPC. OPC Access kombinerer en SQL Server med OPC, således at jeres produktionsudstyr kobles sammen med
Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE
Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE Fact sheet Indholdsfortegnelse Fact Sheet Gantt kort Valgt af virksomhed Brainstorm Attribut tabel ER-diagram Skitse MySQLWorkbench
Indholdsfortegnelse. Systembeskrivelse kapitel 3 Forretningslogik
Indholdsfortegnelse 3. Forretningslogik... 2 3.1 Domænemodel... 2 3.1.1 BBR-domænemodel... 2 3.1.1.1 er i BBR-domænemodel... 3 3.1.2 Modtageboks-domænemodel... 8 3.1.2.1 er i modtageboks-domænemodel...
ADIS, WS og Meta Service
ADIS, WS og Meta Service Om ADIS, Web Services, Værktøjer og Meta Service. Michael Jacobsen Technology Network Management Agenda ADIS og dens udvidelse ISOagriNET Web Service med eller uden fuldt objektmodel
SQL Server 2016 Data Adgang
SQL Server 2016 Data Adgang MSBIP, 5. OKTOBER, 2015 Agenda SQL Server 2016 CTP 2.3 Pragmatisk Data Adgangskontrol Row Level Security Dynamic Masking Kombination af begge Alternativet Hvem er jeg Selvstændig
Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...
Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker
Online kursus: Programming with MongoDB
Online kursus 365 dage DKK 6.499 Nr. 90211 P ekskl. moms MongoDB er et gratis, open-source documentations database program, der er nemt at skalere og udvikle. Det kan installeres på forskelige operativsystemer.
Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.
GeoCad modul GeoDB I GeoCAD er det muligt at koble relationsdatabase til GeoEDIT. Her igennem er det muligt at lagre forskellige oplysninger i databasen og koble disse oplysninger til objekter i kortet.
Practical Intermodal Communication. How-To WebBooking Customer Cap-Flex. Version
Practical Intermodal Communication How-To WebBooking Customer Cap-Flex Version 1.04 PICit A/S Javavej 1 DK-8000 Aarhus (45) 87 30 80 20 www.picit.dk 1/36 Indhold Capacity Booking Flow 2 Cancel af Fast
Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002
Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
HVORDAN VI DOWNLOADEDE INTERNETTET. Man skal crawle før man kan gå
HVORDAN VI DOWNLOADEDE INTERNETTET Man skal crawle før man kan gå DAGSORDEN Hvem jeg er Behovet for en crawler Arkitektur Nutch og Hadoop MongoDB Udfordringer Tak for i dag JACOB AVLUND Partner i Siblingsoft
Databaser Obligatorisk opgave 2 Vejledende løsning
University of Southern Denmark Department of Mathematics and Computer Science Databaser Obligatorisk opgave 2 Vejledende løsning Afleveres senest: Søndag d. 5. maj kl 23.59 Spilleregler Denne obligatoriske
Søren Løbner (lobner) ddb Databaser 2007 10 10
ddb Excercise Week 4 Fra relationships til relations Nu når vi har fået vores skemaer på plads, kan SQL udtrykkene til konstruktion af relationerne laves Det foregår ved at vi tager en 1 til 1 oversættelse
En Kort Introduktion til Oracle
En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 [email protected] 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering
Indhold. Side 2 af 26
Tema Design Design, Programmering og test af Adressebog Fra d. 17 april til 20 april 2012 Vejledere: Gunhild Marie Andersen Kis Boisen Hansen Gruppe B Deltagere Side 1 af 26 Indhold Indledning.... 3 Kodestandard...
Anne Randorff Højen
Anne Randorff Højen [email protected] Forelæsning og opgaver: Introduktion til SQL pause Forlæsning og Opgaver: SQL 2. del pause Introduktion til PhPMyAdmin Opgaver SQL Der modelleres ud fra reelle relationer
Hvorfor skal vi bruge objekt orienteret databaser?
OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal
Eksempel på en database: studenter, kurser, eksamener
Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser
Dannelse af PDF dokumenter
Dannelse af PDF dokumenter Indhold Dannelse af PDF-dokumenter i Phd Planner... 2 Valg af vedhæftninger i PDF dokumentet... 2 Valg af skabelon for PDF dokumentet... 3 Når PDF filen er dannet... 5 Gem PDF
FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18
FORCE Inspect Online Manual 1 af 18 Indholdsfortegnelse Indholdsfortegnelse... 2 FORCE Inspect Online Manual... 3 Generelt... 3 Login... 3 Main... 4 Intro sektion... 4 Links sektion... 4 News sektion...
MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
EasyIQ Opdatering 5.2.3 -> 5.4.0
EasyIQ Opdatering 5.2.3 -> 5.4.0 Kunde: Forfatter: Thomas W. Yde Systemtech A/S Side: 1 af 17 1 Indholdsfortegnelse 2 GENERELT OMKRING FORUDSÆTNINGEN OG OPDATERINGS FORLØBET... 3 2.1 FORUDSÆTNINGER...
Jørgen Koch. och. Access. Normalisering m.v.
Jørgen Koch och Access 2003 2003 for alle Normalisering m.v. Access 2003 for alle 1. udgave, 1. oplag 2004 Copyright 2004 Forlaget Libris Forfatter: Jørgen Koch Forlagsredaktion: Kirsten Bæk DTP: Jørgen
Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0
Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS
