Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze 05.11.09.10.30.

Podobné prezentace


Prezentace na téma: "Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze 05.11.09.10.30."— Transkript prezentace:

1 Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK http://www.ms.mff.cuni.cz/~kopecky/vyuka/dbapl/ Verze 05.11.09.10.30

2 DBI026 -DB Aplikace - MFF UK Příklad Vytvořte schéma pro E-R model Prodej ProdejnaZboží 1,1 0,n 1,1 0,n Kdy Cena_Ks Pocet Id Ulice Mesto Id Nazev Cena_Ks

3 DBI026 -DB Aplikace - MFF UK Tabulky Prodej –CREATE TABLE Prodej ( Zbozi_id Integer, Prodejna_id Integer, Kdy Date, Pocet Integer, Cena_ks Decimal(10,2) ); Zbozi –CREATE TABLE Zbozi ( Zbozi_id Integer, Nazev Varchar2(40) ); Prodejna –CREATE TABLE Prodejna( Prodejna_id Integer, Ulice Varchar2(40), Mesto Varchar2(30) );

4 DBI026 -DB Aplikace - MFF UK Klíče (jde psát i přímo v tabulkách) Zbozi –ALTER TABLE Zbozi ADD( CONSTRAINT Zbozi_PK PRIMARY KEY(Zbozi_id) ); Prodejna –ALTER TABLE Prodejna ADD( CONSTRAINT Prodejna_PK PRIMARY KEY(Prodejna_id) ); Prodej –ALTER TABLE Prodej ADD( CONSTRAINT Prodej_PK PRIMARY KEY( Zbozi_id, Prodejna_id, Kdy ), CONSTRAINT Prodej_FK_Zbozi FOREIGN KEY(Zbozi_id) REFERENCES Zbozi(Zbozi_id) ON DELETE SET NULL, CONSTRAINT Prodej_FK_Prodejna FOREIGN KEY(Prodejna_id) REFERENCES Prodejna(Prodejna_id) ON DELETE SET NULL );

5 DBI026 -DB Aplikace - MFF UK Chybějící indexy přes cizí klíče Zbozi Prodejna Prodej –Index přes Zbozi_id již existuje díky primárnímu klíči –CREATE INDEX Prodej_Prodejna_Id_Inx ON Prodej(Prodejna_Id);

6 DBI026 -DB Aplikace - MFF UK Unikátní název zboží Zbozi –ALTER TABLE Zbozi ADD CONSTRAINT Zbozi_U_Nazev UNIQUE(Nazev) Prodejna Prodej

7 DBI026 -DB Aplikace - MFF UK Příklad Nezávislé ceníky zboží prodejen Prodej ProdejnaZboží 1,1 0,n 1,1 0,n Kdy Cena_Ks Pocet Id Ulice Mesto Id Nazev Cena_Ks Cenik 1,1 Cena_Ks 0,n

8 DBI026 -DB Aplikace - MFF UK Nezávislé ceníky zboží prodejen CREATE TABLE Cenik( Zbozi_Id Integer CONSTRAINT Cenik_FK_Zbozi REFERENCES Zbozi(Id) ON DELETE CASCADE, Prodejna_Id Integer CONSTRAINT Cenik_FK_Prodejna REFERENCES Prodejna(Id) ON DELETE CASCADE, Cena_ks Decimal(10,2) NOT NULL, CONSTRAINT Cenik_PK PRIMARY KEY (Zbozi_Id, Prodejna_Id) ); CREATE INDEX Cenik_Prodejna_Id_Inx ON Cenik(Prodejna_Id); INSERT INTO Cenik SELECT Z.Id, P.Id, Z.Cena_Ks FROM Zbozi Z, Prodejna P; ALTER TABLE Zbozi DROP COLUMN Cena_Ks;


Stáhnout ppt "Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze 05.11.09.10.30."

Podobné prezentace


Reklamy Google