2018-11-16, 12:25
  #1
Medlem
Hej FB. Jag ska börja med att säg att jag är helt ny i detta ämnet och även programmering. Börjar läsa lite grunder i Java. Nu till saken.

Jag har kollat föreläsningar men förstår fortfarande inte riktigt hur jag ska göra. Vi har fått denna tabell i uppgift. Man ska då rita ett ER-diagram, vilket jag tror att jag kan göra. Den ska uppfylla 3NF. Det jag inte riktigt fattar är hur man ska skriva ut det i en tabell(inte ER-diagram) så den uppfyller 3NF. Uppgiften är bara att rita ER-diagram, men jag vill förstår hur jag skulle gjort det om jag gjorde själva tabellen, så den uppfyller 3NF.

Här är en länk till tabellen
https://imgur.com/OrgDanx

Är noob inom detta. Så hatta inte mig för mycket. Vill bara ha hjälp att förstå.
Citera
2018-11-16, 12:29
  #2
Medlem
Protons avatar
Citat:
Ursprungligen postat av Redhustler
Hej FB. Jag ska börja med att säg att jag är helt ny i detta ämnet och även programmering. Börjar läsa lite grunder i Java. Nu till saken.

Jag har kollat föreläsningar men förstår fortfarande inte riktigt hur jag ska göra. Vi har fått denna tabell i uppgift. Man ska då rita ett ER-diagram, vilket jag tror att jag kan göra. Den ska uppfylla 3NF. Det jag inte riktigt fattar är hur man ska skriva ut det i en tabell(inte ER-diagram) så den uppfyller 3NF. Uppgiften är bara att rita ER-diagram, men jag vill förstår hur jag skulle gjort det om jag gjorde själva tabellen, så den uppfyller 3NF.

Här är en länk till tabellen
https://imgur.com/OrgDanx

Är noob inom detta. Så hatta inte mig för mycket. Vill bara ha hjälp att förstå.
Med tanke på att tredje normalformen stipulerar att "en tabell är i tredje NF om och endast om den uppfyller första och andra NF, samt att det inte finns några transitiva beroenden i den" ser man ju omgående att det finns inte en chans att fixa detta med mindre än att du delar på tabellen och tillverkar relationer till andra tabeller som får hålla övrigt data.
Citera
2018-11-16, 12:47
  #3
Medlem
Citat:
Ursprungligen postat av Proton
Med tanke på att tredje normalformen stipulerar att "en tabell är i tredje NF om och endast om den uppfyller första och andra NF, samt att det inte finns några transitiva beroenden i den" ser man ju omgående att det finns inte en chans att fixa detta med mindre än att du delar på tabellen och tillverkar relationer till andra tabeller som får hålla övrigt data.

Okej men om jag skulle dela på tabellen och skapa relationer. Hur skulle det se ut då? Är riktigt hjärndöd idag .
Citera
2018-11-16, 14:53
  #4
Medlem
Protons avatar
Citat:
Ursprungligen postat av Redhustler
Okej men om jag skulle dela på tabellen och skapa relationer. Hur skulle det se ut då? Är riktigt hjärndöd idag .
Ska vi lösa hela uppgiften åt dig menar du? Get real...

Istället för att fråga andra om dina läxor kanske du kan fundera på vad som är rimligt att ta ur tabellen och hur den bör designas om. 1NF stipulerar att det endast ska finnas atomära värden i varje attribut, tycker du till exempel att öppettiderna är atomära till att börja med?
Citera
2018-12-22, 00:35
  #5
Medlem
Kod:
CREATE TABLE Strängar (
	SträngID int NOT NULL PRIMARY KEY,
	Sträng varchar(255) NOT NULL UNIQUE
);
CREATE TABLE Adresser (
	AdressID int NOT NULL PRIMARY KEY,
	SträngID int NOT NULL FOREIGN KEY REFERENCES Strängar(SträngID),
);
CREATE TABLE Individer (
	IndividID int NOT NULL PRIMARY KEY
);
CREATE TABLE IndividNamn (
	IndividID int NOT NULL FOREIGN KEY REFERENCES Individer(IndividID),
	SträngID int NOT NULL FOREIGN KEY REFERENCES Strängar(SträngID),
	PRIMARY KEY (IndividID, SträngID)
);
CREATE TABLE Produkter (
	ProduktID int NOT NULL PRIMARY KEY,
	SträngID int NOT NULL FOREIGN KEY REFERENCES Strängar(SträngID),
);
CREATE TABLE Öppettider (
	ÖppettidID  int NOT NULL PRIMARY KEY,
	Öppnar time(0) NOT NULL,
	Stänger time(0) NOT NULL
);
CREATE TABLE Butiker (
	ButikID int NOT NULL PRIMARY KEY,
	SträngID int NOT NULL FOREIGN KEY REFERENCES Strängar(SträngID),
	Butiksadress int NOT NULL FOREIGN KEY REFERENCES Adresser(AdressID),
	ÖppettidID int NOT NULL FOREIGN KEY REFERENCES Öppettider(ÖppettidID),
	IndividID int NOT NULL FOREIGN KEY REFERENCES Individer(IndividID),
	Butikschefsadress int NOT NULL FOREIGN KEY REFERENCES Adresser(AdressID)	
);
CREATE TABLE Personal (
	ButikID int NOT NULL FOREIGN KEY REFERENCES Butiker(ButikID),
	IndividID int NOT NULL FOREIGN KEY REFERENCES Individer(IndividID),
	Nummer int NOT NULL,
	PRIMARY KEY (ButikID, IndividID)
);
CREATE TABLE Varor (
	ButikID int NOT NULL FOREIGN KEY REFERENCES Butiker(ButikID),
	ProduktID int NOT NULL FOREIGN KEY REFERENCES Produkter(ProduktID),
	PRIMARY KEY (ButikID, ProduktID)
);


hehe, det här är 3NF, men tro mig att du kuggar om du kopierar detta...
__________________
Senast redigerad av thesqlguru 2018-12-22 kl. 00:47. Anledning: humor
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in