Programmering Flashcards

1
Q

Hvad er et Database Management System (DBMS) ?

A

Et system der bruges til bl.a. oprettelse og vedligehold af databaser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvad er SSMS forkortelse for, og hvad bruges det til?

A

Forkortelse for SQL Server Management Studio. Er en softwareapplikation der bruges til at tilgå DBMS´en.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvad er en relationel database?

A

En relationel database er en database hvor data organiseres i tabeller der indgår i relation til hinanden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvad er SQL en forkortelse for?

A

Structured Query Language

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvad bruges SQL til?

A

SQL bruges til at kommunikere med en relationel database.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad vil det sige at SQL er deklarativt?

A

Sproget fungerer nærmest som kommandoer - eller i bydeform.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hvad repræsenterer “Attributes” i forbindelse med et skema i en relationel database?

A

Kolonner.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvad repræsenterer “Tuples” i forbindelse med et skema i en relationel database?

A

Rækker.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvad repræsenterer “Relation” i forbindelse med et skema i en relationel database?

A

Hele tabellen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvad definerer “domænet” i forbindelse med et skema i en relationel database?

A

Definerer den valide datatype for hver attribut.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvilken funktion har en “primær nøgle” i forbindelse med et skema i en relationel database?

A

Bruges til at sikre at hver række er unik. Skal være til stede i en hver tabel i databasen. Kan ikke være NULL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvilken funktion har en “fremmed nøgle” i forbindelse med et skema i en relationel database?

A

Bruges til at referere til en primær nøgle i en anden relation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvilken funktion har “constraints” i forbindelse med et skema i en relationel database?

A

Constraints er regler eller begrænsninger for en relation i en database.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvad definerer en consistent database?

A

En database der overholder alle constraints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvad er domæne constraints i en relationel database?

A

Regler for domænet - eks. valide værdier og datatyper.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hvad er key constraints i en relationel database?

A

Regler for nøgler - eks. at alle tuples skal være unikke.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvad er entity integrity constraints i en relationel database?

A

Regler for primær nøgler - eks. at den skal være unik og at den ikke må være NULL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hvad er referential integrity constraints i en relationel database?

A

Regler for fremmednøgler - eks. at de enten er NULL (medmindre NOT NULL er defineret) eller at de refererer til en primær nøgle i en anden relation. Desuden skal primær- og fremmednøgle være kompatible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hvad er en transaktion?

A

En samling af operationer der udføres på en database, som følger “alt eller intet” princippet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hvad er relationel algebra? Og hvilken sammenhæng har det med relationelle databaser?

A

Relationel algebra er det matematiske grundlag for query sprog som SQL der bruges i en relationel database.

21
Q

Hvad er en nested query?

A

Når der er to eller flere querys indlejret i én.

22
Q

Hvad er DAO forkortelse for?

A

Data Access Objects

23
Q

Hvad er formålet med at bruge et DAO mønster i systemets arkitektur?

A

Incapsulation (indkapsling) af “database access code”. Med andre ord; at adskille “business objects” og “database access code”

24
Q

Hvad er fordelene ved at bruge et DAO mønster i systemets arkitektur?

A

Fordi koden til at tilgå databasen er indkapslet, er det muligt at ændre i databasens opsætning, uden at skulle ændre i resten af systemet.

25
Q

Hvad er fordelene ved at implementere et Interface?

A

“Seperation of concerns”. Med andre ord; andre klasser har kun adgang til det nødvendige. Det er med til at sikre “low coupling” (lav kobling).

26
Q

Hvad er embedded SQL?

A

Når SQL statements indlejres i eks. et Java system.

27
Q

I hvilket lag benyttes transaktioner som ofte?

A

I controlleren, eftersom en metode kan være nødt til at lave mange eksterne metodekald til klasser som kun controlleren kan se. Dog kan en transaktion også befinde sig i DB klassen.

28
Q

Hvornår er det aktuelt at bruge en transaktion?

A

Når der skal udføres flere SQL operationer på én gang. Og specielt hvis en eller flere af dem ændrer i databasens data. (Update)

29
Q

Hvornår er det ikke aktuelt at bruge en transaktion?

A

Når der kun er en SQL operation der skal udføres, eller hvis der kun læses på databasens data.

30
Q

Hvad kendetegner implementeringen af et Singleton mønster?

A

Private static “instance” field, private constructor, og en static getInstance() metode.

31
Q

Hvad bruges Big-O notation til?

A

At fortælle noget om en algoritmes maksimale “time complexity” eller “space complexity” - altså tiden det tager for en algoritme at eksekvere, eller mængden af plads den optager.

32
Q

Hvad er Big-O notationen for følgende kode eksempel?

A

O(1)
Algoritmen vil eksekvere med samme hastighed uanset størrelsen på input data

33
Q

Hvad er Big-O notationen for følgende kode eksempel?

A

O(N)
Tiden hvorpå algoritmen eksekverer stiger lineært med størrelsen på input data.

34
Q

Hvad er Big-O notationen for følgende kode eksempel?

A

O(N^2)
Tiden hvorpå algoritmen eksekverer stiger eksponentielt med størrelsen på input data.

35
Q

Hvad viser billedet? Forklar i hvilken sammenhæng det bruges.

A

Diagram der viser growth-rate funktioner for forskellige Big-O notationer. Funktionerne siger noget om forholdet mellem tiden det tager for en algoritme at eksekvere, og størrelsen på den data der eksekveres på.

36
Q

Hvornår kan det være fordelagtigt at implementere et Singeton mønster?

A

Hvis man vil sikre sig at der kun kan oprettes én instans af en given klasse.

37
Q

Hvad er recursion?

A

Når en metode kalder sig selv.

38
Q

Hvad er reglerne for en recursiv metode?

A
  1. Skal have input værdi
  2. Skal have logik der involverer inputtet
  3. På et tidspunkt skal der være en løsning der ikke kræver yderligere recursion
39
Q

Hvad er en generisk klasse eller metode?

A

En klasse eller metode der kan håndtere alle slags datatyper, eftersom den tager imod den generiske type <T> der er pladsholder for en endnu udefineret type.</T>

40
Q

Hvorfor kan det være smart at have en generisk klasse eller metode?

A

Fordi det gør det muligt for klassen at håndtere flere typer, og dermed kan brugeren selv at bestemme typen efter behov.

41
Q

Hvad kendetegner en deterministisk datastruktur? Kom et eksempel på en datastruktur der er deterministisk, og en der ikke er.

A

Ved en deterministisk datastruktur ved vi, at der sker det samme hver gang vi udfører en operation, og at det tager lige lang tid hver gang. LinkedList er deterministisk, det er ArrayList ikke.

42
Q

Hvorfor er ArrayList ikke en deterministisk datastruktur?

A

Vi kan ikke være sikre på at der sker det samme i hukommelsen hver gang vi kører den samme operation. Hvis en tilføjelse af en værdi eks. overstiger listens nuværende størrelse, skal pladsen først udvides, hvorefter værdien skal indsættes. Det er dermed ikke det samme der sker hvis værdien indsættes før pladsen er opbrugt.

43
Q

Hvad er datastrukturer?

A

Forskellige måder at organisere data på i computerens hukommelse.

44
Q

Hvad er forskellen på statiske og dynamiske datastrukturer?

A

En statisk datastruktur har en fast størrelse, mens en dynamisk datastruktur kan vokse eller skrumpe i størrelse når det bliver nødvendigt.

45
Q

Hvad er fordele og ulemper i forhold til effektivitet ved valg af datastrukturen ArrayList?

A

Ulempe: Når listen skal vokse eller skrumpe i størrelse har det negativ effekt på runtime (O(n)).
Fordel: Det er hurtigt at tilgå et element i listen direkte med index (O(1)).

46
Q

Hvad er fordele og ulemper i forhold til effektivitet ved valg af datastrukturen LinkedList?

A

Ulempe: Det er nødvendigt at søge for at tilgå et enkelt element, hvilket har negativ effekt på runtime (O(n)).
Fordel: Listen optager ikke mere plads end nødvendigt, og kan nemt vokse og skrumpe.

47
Q

Hvad er en ADT? Kom med et eksempel.

A

ADT står for abstract data type. En abstrakt data type er en data type hvis formål på forhånd er specificeret, men hvor implementeringen er uspecificeret.
Eksempel: List er en ADT, ArrayList er implementeringen af den.

48
Q

Hvad er substitution?

A

Eks. Når et objekt af typen “superklasse” tilskrives et objekt af typen “subklasse”.