Projekt dziennika lekcyjnego 16 czerwca 2014 [Wpisz tutaj streszczenie dokumentu. Streszczenie jest zazwyczaj krótkim podsumowaniem treści dokumentu. Wpisz tutaj streszczenie dokumentu. Streszczenie jest zazwyczaj krótkim podsumowaniem treści dokumentu.] Bazy danych
Spis treści Przedstawienie tematu... 2 Zawartość... 2 Tabele... 3 Diagram relacji... 8 Relacje... 9 Widoki... 11 Przedstawienie tematu Celem projektu jest usprawnienie prowadzenia i magazynowania danych związanych z dziennikiem lekcyjnym. Dzięki bazie szkoła będzie w stanie w prosty i szybki sposób prowadzić ewidencję uczniów a co za tym idzie ich. Projekt zawiera tabele, widoki, triggery. Nauczyciel będzie w stanie w szybki i sprawny sposób wystawić ocenę uczniowi. W dzienniku są informacje o uczniach danej klasy. W karcie przedmiotu zapisywane są stopnie, z adnotacją komu i za co została wystawiona sprawdzian, odpowiedź ustna, klasówka, aktywność na lekcji, za prowadzenie zeszytu itp.) oraz data wystawienia oceny. W karcie przedmiotu jest również podany nauczyciel prowadzący dany przedmiot. System liczy średnią arytmetyczną ocen, ale jest to tylko wartość pomocnicza. Ocenę wystawia sam nauczyciel według własnych kryteriów. Oceny można poprawiać. Zawartość 1. Tabele: karta_przedmiotu uczen nauczyciel klasa adres_zamieszkania ocena ocena_rodzaj przedmiot semestr waga 2. Widoki 3. Procedury składowe 4. Funkcje 5. Triggery 6. Wsady wewnętrzne
Tabele Karta przedmiotu: karta_przedmiotu ID_karta_przedmiotu ID_Przedmiot ID_Uczen ID_Ocena ID_Nauczyciel ID_ocena_rodzaj ID_waga ID_semestr CREATE TABLE [dbo].[karta_przedmiotu] [ID_karta_przedmiotu] [] NOT NULL, [ID_Przedmiot] [] NOT NULL, [ID_Uczen] [] NOT NULL, [ID_Ocena] [] NULL, [ID_Nauczyciel] [] NOT NULL, [ID_ocena_rodzaj] [] NOT NULL, [ID_waga] [] NOT NULL, [ID_semestr] [] NOT NULL, [ID_karta_przedmiotu] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Uczeń: uczen ID_Uczen Nazwisko varchar30) Imie varchar30) ID_Klasa ID_adres_zamieszkania CREATE TABLE [dbo].[uczen] [ID_Uczen] [] NOT NULL, [Nazwisko] [varchar]30) NOT NULL, [Imie] [varchar]30) NOT NULL, [ID_Klasa] [] NOT NULL,
[ID_adres_zamieszkania] [] NULL, [ID_Uczen] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Nauczyciel: nauczyciel ID_Nauczyciel Nazwisko varchar30) Imie varchar30) ID_Przedmiot CREATE TABLE [dbo].[nauczyciel] [ID_Nauczyciel] [] NOT NULL, [Nazwisko] [varchar]30) NOT NULL, [Imie] [varchar]30) NOT NULL, [ID_Przedmiot] [] NOT NULL, [ID_Nauczyciel] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Przedmiot: przedmiot ID_Przedmiot Nazwa varchar15) CREATE TABLE [dbo].[przedmiot] [ID_Przedmiot] [] NOT NULL, [Nazwa] [varchar]15) NULL, [ID_Przedmiot] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =, UNIQUE NONCLUSTERED
[Nazwa] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Ocena: ocena ID_Ocena Ocena Data_wystawienia date CREATE TABLE [dbo].[ocena] [ID_Ocena] [] NOT NULL, [Ocena] [] NULL, [Data_wystawienia] [date] NULL, [ID_Ocena] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Rodzaj oceny: ocena_rodzaj ID_ocena_rodzaj Nazwa varchar15) ID_waga CREATE TABLE [dbo].[ocena_rodzaj] [ID_ocena_rodzaj] [] NOT NULL, [Nazwa] [varchar]15) NULL, [ID_waga] [] NOT NULL, [ID_ocena_rodzaj] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =, UNIQUE NONCLUSTERED [Nazwa] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
Semestr: semestr ID_semestr Numer_semestru CREATE TABLE [dbo].[semestr] [ID_semestr] [] NOT NULL, [Numer_semestru] [] NOT NULL, [ID_semestr] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Waga: waga ID_waga Waga CREATE TABLE [dbo].[waga] [ID_waga] [] NOT NULL, [Waga] [] NULL, [ID_waga] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
Klasa: klasa ID_Klasa Nazwa varchar2) CREATE TABLE [dbo].[klasa] [ID_Klasa] [] NOT NULL, [Nazwa] [varchar]2) NULL, [ID_Klasa] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =, UNIQUE NONCLUSTERED [Nazwa] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = Adres zamieszkania: adres_zamieszkania ID_adres_zamieszkania Miasto varchar30) Ulica varchar30) Numer_domu Numer_mieszkania Kod_pocztowy varchar6) CREATE TABLE [dbo].[adres_zamieszkania] [ID_adres_zamieszkania] [] NOT NULL, [Miasto] [varchar]30) NOT NULL, [Ulica] [varchar]30) NOT NULL, [Numer_domu] [] NOT NULL, [Numer_mieszkania] [] NOT NULL, [Kod_pocztowy] [varchar]6) NOT NULL, [ID_adres_zamieszkania] ASC )WITH PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
Diagram relacji adres_zamieszkania ID_adres_zamieszkania Miasto Ulica Numer_domu Numer_mieszkania Kod_pocztowy karta_przedmiotu ID_karta_przedmiotu ID_Przedmiot ID_Uczen ID_Ocena ID_Nauczyciel ID_ocena_rodzaj ID_waga ID_semestr klasa ID_Klasa Nazwa nauczyciel ID_Nauczyciel Nazwisko Imie ID_Przedmiot FK_karta_przedmiotu_nauczyciel ocena ID_Ocena Ocena Data_wystawienia FK_karta_przedmiotu_ocena ocena_rodzaj ID_ocena_rodzaj Nazwa ID_waga FK_karta_przedmiotu_ocena_rodzaj przedmiot ID_Przedmiot Nazwa FK_nauczyciel_przedmiot FK_karta_przedmiotu_przedmiot1 semestr ID_semestr Numer_semestru FK_karta_przedmiotu_semestr uczen ID_Uczen Nazwisko Imie ID_Klasa ID_adres_zamieszkania FK_uczen_klasa FK_karta_przedmiotu_uczen FK_uczen_adres_zamieszkania1 waga ID_waga Waga FK_ocena_rodzaj_waga
Relacje FK_karta_przedmiotu_nauczyciel ALTER TABLE [dbo].[karta_przedmiotu] WITH CHECK ADD CONSTRAINT [FK_karta_przedmiotu_nauczyciel] FOREIGN KEY[ID_Nauczyciel]) REFERENCES [dbo].[nauczyciel] [ID_Nauczyciel]) ALTER TABLE [dbo].[karta_przedmiotu] CHECK CONSTRAINT [FK_karta_przedmiotu_nauczyciel] FK_karta_przedmiotu_ocena ALTER TABLE [dbo].[karta_przedmiotu] WITH CHECK ADD CONSTRAINT [FK_karta_przedmiotu_ocena] FOREIGN KEY[ID_Ocena]) REFERENCES [dbo].[ocena] [ID_Ocena]) ALTER TABLE [dbo].[karta_przedmiotu] CHECK CONSTRAINT [FK_karta_przedmiotu_ocena] FK_karta_przedmiotu_ocena_rodzaj ALTER TABLE [dbo].[karta_przedmiotu] WITH CHECK ADD CONSTRAINT [FK_karta_przedmiotu_ocena_rodzaj] FOREIGN KEY[ID_ocena_rodzaj]) REFERENCES [dbo].[ocena_rodzaj] [ID_ocena_rodzaj]) ALTER TABLE [dbo].[karta_przedmiotu] CHECK CONSTRAINT [FK_karta_przedmiotu_ocena_rodzaj] FK_karta_przedmiotu_przedmiot1 ALTER TABLE [dbo].[karta_przedmiotu] WITH CHECK ADD CONSTRAINT [FK_karta_przedmiotu_przedmiot1] FOREIGN KEY[ID_Przedmiot]) REFERENCES [dbo].[przedmiot] [ID_Przedmiot]) ALTER TABLE [dbo].[karta_przedmiotu] CHECK CONSTRAINT [FK_karta_przedmiotu_przedmiot1] FK_karta_przedmiotu_semestr ALTER TABLE [dbo].[karta_przedmiotu] WITH CHECK ADD CONSTRAINT [FK_karta_przedmiotu_semestr] FOREIGN KEY[ID_semestr])
REFERENCES [dbo].[semestr] [ID_semestr]) ALTER TABLE [dbo].[karta_przedmiotu] CHECK CONSTRAINT [FK_karta_przedmiotu_semestr] FK_karta_przedmiotu_uczen ALTER TABLE [dbo].[karta_przedmiotu] WITH CHECK ADD CONSTRAINT [FK_karta_przedmiotu_uczen] FOREIGN KEY[ID_Uczen]) REFERENCES [dbo].[uczen] [ID_Uczen]) ALTER TABLE [dbo].[karta_przedmiotu] CHECK CONSTRAINT [FK_karta_przedmiotu_uczen] FK_nauczyciel_przedmiot ALTER TABLE [dbo].[nauczyciel] WITH CHECK ADD CONSTRAINT [FK_nauczyciel_przedmiot] FOREIGN KEY[ID_Przedmiot]) REFERENCES [dbo].[przedmiot] [ID_Przedmiot]) ALTER TABLE [dbo].[nauczyciel] CHECK CONSTRAINT [FK_nauczyciel_przedmiot] FK_ocena_rodzaj_waga ALTER TABLE [dbo].[ocena_rodzaj] WITH CHECK ADD CONSTRAINT [FK_ocena_rodzaj_waga] FOREIGN KEY[ID_waga]) REFERENCES [dbo].[waga] [ID_waga]) ALTER TABLE [dbo].[ocena_rodzaj] CHECK CONSTRAINT [FK_ocena_rodzaj_waga] FK_uczen_adres_zamieszkania1 ALTER TABLE [dbo].[uczen] WITH CHECK ADD CONSTRAINT [FK_uczen_adres_zamieszkania1] FOREIGN KEY[ID_adres_zamieszkania]) REFERENCES [dbo].[adres_zamieszkania] [ID_adres_zamieszkania]) ALTER TABLE [dbo].[uczen] CHECK CONSTRAINT [FK_uczen_adres_zamieszkania1]
FK_uczen_klasa ALTER TABLE [dbo].[uczen] WITH CHECK ADD CONSTRAINT [FK_uczen_klasa] FOREIGN KEY[ID_Klasa]) REFERENCES [dbo].[klasa] [ID_Klasa]) ALTER TABLE [dbo].[uczen] CHECK CONSTRAINT [FK_uczen_klasa] Widoki srednia_arytmetyczna Widok wylicza średnią arytmetyczną ocen i wstawia ją do tabeli karta_przedmiotu do kolumny o nazwie Średnia. CREATE view [dbo].[srednia_arytmetyczna] AS SELECT AvgID_ocena) AS [Œrednia] FROM karta_przedmiotu uczniowie_alfabetycznie Widok pokazuje uczniów szkoły posegregowanych alfabetycznie CREATE VIEW [dbo].[uczniowie_alfabetycznie] AS SELECT TOP 100) PERCENT Nazwisko, Imie FROM dbo.uczen GROUP BY Nazwisko, Imie ORDER BY Nazwisko, Imie nauczyciel_przedmioty Widok pokazuje jaki nauczyciel uczy jakiego przedmiotu. CREATE VIEW [dbo].[nauczyciel_przedmioty] AS SELECT TOP 100) PERCENT dbo.nauczyciel.nazwisko, dbo.nauczyciel.imie, dbo.przedmiot.nazwa FROM dbo.nauczyciel INNER JOIN dbo.przedmiot ON dbo.nauczyciel.id_przedmiot = dbo.przedmiot.id_przedmiot ORDER BY dbo.nauczyciel.nazwisko, dbo.nauczyciel.imie
uczniowie_czerwony_pasek Widok pokazuje uczniów którzy posiadają wystarczającą średnia aby zdobyć czerwony pasek na świadectwie ukończenia tzn. średnia ocen musi być powyżej 4,75 oraz to z której klasy są. CREATE VIEW [dbo].[uczniowie_czerwony_pasek] AS SELECT dbo.uczen.nazwisko, dbo.uczen.imie, AVGdbo.ocena.Ocena) AS Ocena, dbo.klasa.nazwa FROM dbo.ocena INNER JOIN dbo.karta_przedmiotu ON dbo.ocena.id_ocena = dbo.karta_przedmiotu.id_ocena INNER JOIN dbo.uczen ON dbo.karta_przedmiotu.id_uczen = dbo.uczen.id_uczen INNER JOIN dbo.klasa ON dbo.uczen.id_klasa = dbo.klasa.id_klasa GROUP BY dbo.uczen.nazwisko, dbo.uczen.imie, dbo.klasa.nazwa HAVING AVGdbo.ocena.Ocena) > 4.75)