Datamodeller Flashcards
(21 cards)
Uppgift 1) 1p
Börje Langefors infologiska ekvation ser ut så här: I = i(D,S,t)
Den beskriver information I som resultatet av en tolkningsprocess. Lilla t representerar den tid man har på sig för att göra en tolkning. Vad menas med att fatta ett exekutivt beslut?
a) Det finns inget som heter så
b) Man har relativt lång tid på sig att fatta ett beslut
c) Man har för låga förkunskaper för att kunna fatta ett beslut
d) Man har för lite metadata för att kunna fatta ett beslut
e) Man har kort om tid på sig, beslutet sker under tidspress
e) Man har kort om tid på sig, beslutet sker under tidspress
Uppgift 2) 1p
Hur ska vi använda oss av commit när vi jobbar med SQL? Vilket av nedanstående alternativ är rätt?
Alternativ 1
alter table kund
add email varchar2(50);
commit;
Alternativ 2
update kund
set yrke = ‘tandläkare’
where knr = 220;
commit;
a) Både alternativ 1 och 2 är rätt
b) Alternativ 1 och 2 är fel
c) Endast alternativ 1 är rätt
d) Endast alternativ 2 är rät
d) Endast alternativ 2 är rätt
Uppgift 3) 1p
Om vi vill se kundnummer, förnamn och efternamn utan dubbletter för de kunder som har en eller flera kundordrar, vilket av följande alternativ är rätt?
Alternativ 1
select knr,fnamn,enamn
from kund
where knr in(select knr
from kundorder);
Alternativ 2
select distinct k.knr,k.fnamn,k.enamn
from kund k, kundorder ko
where k.knr = ko.knr;
a) Endast alternativ 1 kommer att fungera
b) Endast alternativ 2 kommer att fungera
c) Både alternativ 1 och 2 kommer att fungera
d) Inget av alternativen 1 och 2 kommer att fungera
c) Både alternativ 1 och 2 kommer att fungera
Uppgift 4) 1p
Om vi vill se artnamn, pris för de artiklar som har ett pris som är det lägsta priset för alla artiklar. Vilken av följande SQL-satser är då korrekt?
a) select artnamn,pris
from artikel
having pris = (select min(pris)
from artikel);
b) select artnamn,pris
from artikel
where pris = (select min(pris)
from artikel);
c) select artnamn,pris
from artikel
where pris = min(pris);
d) select artnamn,pris
from artikel
where pris = (select avg(pris)
from artikel);
b) select artnamn,pris
from artikel
where pris = (select min(pris)
from artikel);
Uppgift 5) 1p
Om vi vill se ordnr och total ordersumma för varje kundorder. Vilken av följande SQL-satser kommer att hämta korrekt information?
a) select o.ordnr,count(o.antal * a.pris)
from orderrad o,artikel a
where o.artnr = a.artnr
group by sum(o.antal * a.pris);
b) select o.ordnr,sum(o.antal * a.pris)
from orderrad o,artikel a
where o.artnr = a.artnr
group by o.ordnr;
c) select ko.ordnr,sum(ko.antal * a.pris)
from kundorder ko,artikel a
where ko.artnr = a.artnr
group by ko.ordnr;
d) select o.ordnr,sum(a.pris)
from orderrad o,artikel a
where o.artnr = a.artnr
group by o.ordnr;
b) select o.ordnr,sum(o.antal * a.pris)
from orderrad o,artikel a
where o.artnr = a.artnr
group by o.ordnr;
Uppgift 6) 1p
Vilket av följande påståenden är sant vad gäller för entitetsintegritet (PK)?
a) Måste genereras med en sekvens
b) Får innehålla null-värden
c) Måste referera till en annan kolumn
d) Måste vara unik i tabellen
d) Måste vara unik i tabellen
Uppgift 7) 1p
Kommer nedanstående trigger att fungera utan problem, om den kopplas till tabellen orderrad på sid. 2?
Create or replace trigger fixa_pk
Before insert on orderrad
For each row
Begin
Select radnr_seq.nextval
Into :new.radnr
From dual;
End;
Vi antar att sekvensen radnr_seq existerar och fungerar med unika nummer som inte redan finns i tabellen orderrad.
a) ja
b) nej
a) ja
Uppgift 8) 1p
Nedanstående PLSQL kod har en inbyggd felhanteringsdel:
declare
x number(12);
begin
select count(knr)
into x
from kund;
dbms_output.put_line(‘Allt OK’);
exception
when no_data_found then
dbms_output.put_line(‘ERROR’);
when others then
dbms_output.put_line(‘ANNAT FEL’);
end;
Vad skrivs ut?
a) Allt OK
b) ERROR
c) ANNAT FEL
a) Allt OK
Uppgift 9) 1p
Om du studerar nedanstående bild och tabellen ränteändring. Vilken kolumn behövs inte för att fullständigt uppfylla definitionen av ett e-meddelande enligt Börje Langefors.
Bilder på 2 gula boxar.
a) ktyp
b) ränta
c) ränr
d) tid
c) ränr
Uppgift 10) 1p
Följande påstående: ” tillåter alltid DML-operationer mot underliggande bastabell” gäller för:
a) Enkla vyer
b) Komplexa vyer
c) Inget av ovanstående alternativ är rätt
a) Enkla vyer
Uppgift 11) 1p
Fysisk redundans uppträder i datamodeller med:
a) För låg grad av normalisering
b) För hög grad av normalisering
c) Med för många M:M relationer
d) Med för många 1:1 relationer
e) Inget av ovanstående alternativ har med fysisk redundans att göra.
a) För låg grad av normalisering
Uppgift 12) 1p
Om vi har en row trigger som startar before update på en databastabell. Vilka new- och old-värden har den tillgång till?
a) old
b) new
c) old och new
d) den har inte tillgång till några new- eller old-värden.
c) old och new
Uppgift 13) 1p
PK, Primary key eller primärnyckel
I det paper som Owen Eriksson skrev: To Denominate and Characterise in the Context of Information Systems, kommer Owen fram till några viktiga slutsatser. Är nedanstående sant eller falskt enligt dessa slutsatser?
Påstående: Artikelnummer som används som PK bör innehålla en beskrivning av de objekt som de identifierar.
a) sant
b) falskt
b) falskt
Uppgift 14) 1p
Vilket av följande påståenden om relations-vyer är sant?
a) Vi kan inte basera vyer på andra vyer.
b) En vy kan inte användas för att förenkla en SQL-sats.
c) En vy som är komplex får inte innehålla funktioner.
d) Inget av ovanstående alternativ är rätt.
d) Inget av ovanstående alternativ är rätt.
Uppgift 15) 1p
Om vi ska lagra ett orderdatum i en databastabell, vad ska det vara för datatyp på kolumnen?
a) date
b) number
c) varchar2
a) date
Uppgift 16) 1p
Kan en FK (foreign key) någonsin innehålla ett null-värde?
a) Ja
b) Nej
a) Ja
Uppgift 17) 1p
Studera nedanstående bild
Vad representerar den ifyllda blanketten?
a) Data
b) Metadata
c) Information
c) Information
Uppgift 18) 1p
Studera följande funktion som används för inloggning: Den jobbar mot kundtabellen på sid. 2.
create or replace function loggaIn(
p_knr in varchar2,
p_password in varchar2)
return number
is
v_kontroll kund.knr%type;
begin
select knr
into v_kontroll
from kund
where knr = p_knr and password = p_password;
return 1;
exception
when no_data_found then
return -1;
when others then
return -100;
end;
/
Vad kommer funktionen loggaIn att returnera vid nedanstående anrop?
Select loggaIn(101,’qwerty33’)
From dual;
a) 101
b) -1
c) qwerty
d) -100
e) 1
f) Inget av ovanstående
b) -1
Uppgift 19) 1p
Vad kan vi åstadkomma med DML-satser?
a) Förändringar av datainnehållet i tabeller
b) Vi kan förändra själva tabellobjektets egenskaper
c) Styra olika behörigheter för användare till databasens olika objekt (tabeller, vyer, funktioner, procedurer etc.)
d) Kontrollera effekter av databastransaktioner.
a) Förändringar av datainnehållet i tabeller
Uppgift 20) 3p (här kan du inte få minus-poäng)
Nedanstående objektmodell ska transformeras till en informationsmodell. Detta innebär att alla M:M förhållanden måste bort. Modellen är under utveckling för ett byggföretag Kvasts Bygg i Gagnef AB. Modellen beskriver olika byggprojekt. Ett projekt kan vara att bygga ett uterum, en altan eller att bygga ett garage. Företaget har många olika projekt. Byggprojekten behöver olika arbetare för att kunna slutföras. Det kan behövas snickare, elektriker, plåtslagare eller rörmokare för att utföra alla delar i projektet.
Som vi ser på bilden kan “Ett projekt kan inkludera flera arbetare, en arbetare kan jobba i flera projekt”. Din uppgift blir att få bort M:M förhållandet genom att skapa en ny modell som en bild, eller att du UTFÖRLIGT beskriver i text hur du löser det.
aa
Uppgift 20) 1p (här kan du inte få minus-poäng)
Forskningsresultat
I det paper som Owen Eriksson skrev: To Denominate and Characterise in the Context of Information Systems, kommer Owen fram till några viktiga slutsatser om hur man bör konstruera identifierare i IT-system (PK eller Primärnycklar). Bryter man mot dessa slutsatser så kan få stora problem. Detta kostar pengar.
Operativa åtgärder på Högskolan Dalarna år 2000
År 2000 införde Högskolan Dalarna nya identiteter för studenter. De nya identiteterna såg ut så här: h00andsv, v01marla. Dessa identiteter används även idag.
Identiteterna har inbyggda beskrivande delar av de studentobjekt som de identifierar. Om vi tar (den påhittade) studenten Anders Svensson, h00andsv, som påbörjade sina studier Hösten 2000 så kan vi se att identifieraren h00andsv innehåller tre delar, en del h, som beskriver att studenten började på hösten. En del 00 som beskriver vilket år studenten började. Den sista delen andsv beskriver vad studenten heter i för-och efternamn. Anders Svensson blir: andsv. Alltså: termin || år || namn.
De gamla identiteterna, som upphörde år 2000, såg ut så här: d96tkv, sy98asv, gt97aan. gt97aan, kunde vara en student som började på programmet Grafisk teknologi 1997 och som hette Anna Andersson. Dataingenjörsprogrammet hade förkortningen d, och Systemvetenskapliga programmet hade sy som förkortning. Identiteten var uppbyggd av: utb. program || år || namn.
Flera IT-system hade funktioner som gjorde olika saker. Några exempel var: skicka ut klass-mail, skicka program-mail, skicka inbjudningar till sittningar på Kåren. Dessa funktioner använde den första delen i den gamla identiteten för att avgöra om en viss student skulle bjudas in till en fest på Kåren.
Din uppgift blir att försöka lista ut varför Högskolan förändrade identiteterna för studenter år 2000. Vilka problem hade man? Hur kan dessa problem kopplas till Owens forskningsresultat?
Om en student bytte program blev e-postadressen felaktig, vilket ledde till irrelevanta meddelanden och missad e-post från det nya programmet. Detta gjorde identifieraren dålig, eftersom den innehöll föränderlig information.