Forum CDRinfo.pl

Forum CDRinfo.pl (https://forum.cdrinfo.pl/)
-   Off topic (https://forum.cdrinfo.pl/f5/)
-   -   Prośba o pomoc z zadaniem z Access'a (https://forum.cdrinfo.pl/f5/prosba-o-pomoc-zadaniem-accessa-91723/)

Pagerus 05.12.2012 17:29

Prośba o pomoc z zadaniem z Access'a
 
Ilość załączników: 1
Witam! Czy ktoś z Was zna się na Accessie? Chodzi konkretnie o generowanie znormalizowanych tabel.
Mam do rozwiązania ćwiczenie nr 2 z załączonego pliku. Byłbym bardzo wdzięczny za pomoc :-)))
Z góry dziękuję i pozdrawiam :-)

Patrix 05.12.2012 17:53

Kurdę trzy pierwsze postaci normalne powinieneś znać na blache :P Leń!

[STUDENT]
NrStudenta <int, PK, NN, AI>
NazwiskoStudenta <varchar(50)>

[PRACOWNIK]
NrPrac <int, PK, NN, AI>
NazwPrac <varchar(50)>

[PRZEDMIOT]
NrPrzedmiotu <int, PK, NN, AI>
NazwaPrzedmiotu <varchar(50)>

[OSIAGNIECIA]
NrStudenta <int FK, NN>
NrPrac <int FK, NN>
NrPrzedmiotu <int FK, NN>
Ocena <real>
TypOceny <varchar(10)>

Za zadanie masz sprawdzić, która to postać normalna :P

Pagerus 05.12.2012 17:55

Wybacz ale ja dopiero się tego uczę :P Tak więc nie mam bladego pojęcia co Ty tam wrzuciłeś w te nawiasy kwadratowe :/ Ogólnie ma mi wyjść drzewko relacji. No i te relacje muszę powrzucać. I to jeszcze w taki sposób, abym mógł wypełnić dane w arkuszu danych.
Jeszcze raz sorki - ale ja naprawdę dopiero się uczę - a nie bardzo to kumam :/

Patrix 05.12.2012 18:00

No dobra, jak się uczysz to ok, tylko nauczycielowi wstyd powinno być :]

notację przyjąłem taką:
int = integer liczba całkowita
varchar(x) = ciąg tekstowy o długości x znaków
PK = primary key, klucz główny
FK = foreign key, klucz obcy
NN = not null - nie może być puste
AI = auto increment czyli za każdym razem n=n+1 dla Nr/Id

To jest drzewko relacji, narysuj to na kartce
i połącz PK z odpowiadającymi FK, mają wyjść relacje 1:N (jeden do wielu)

Pagerus 05.12.2012 18:14

Ilość załączników: 1
Spróbuję to przerzucić na Access'a i zobaczę co mi wyjdzie :-) Ale przyznam, że jesteś wielki :D

A co oznacza <real> przy polu Ocena??

EDIT:
Wyszło mi w sumie coś takiego jak w załączniku.
Tak się tylko zastanawiam czy jestem w stanie uzupełnić tę bazę o dane. Chodzi mi głównie o to, że jak dla mnie to NazwaPrzedmiotu może funkcjonować potrójnie w bazie w zależności od TypOceny - jak E, Lab., Ćw.

Patrix 05.12.2012 18:48

Cytat:

Napisany przez Pagerus (Post 1233028)
A co oznacza <real> przy polu Ocena??

Ale to już jest lenistwo :)
Wpisz w google "typy danych w programowaniu", następnie kliknij w pierwszą pozycję w wynikach.

Bartez 05.12.2012 18:56

Próbowałeś Patrix? Bo ja wpisałem i trzeba się natrudzić, żeby to znaleźć ;)
Swoją drogą, z REAL to chyba jeszcze nigdy nie korzystałem, a trochę już siedzę w różnych bazach danych.

Pagerus, przydatna strona: http://office.microsoft.com/pl-pl/ac...001231504.aspx

Pagerus 05.12.2012 18:57

No ja niestety dopiero się tego uczę. Już jakoś lepiej wychodzi mi tworzenie kwerend niż tych znormalizowanych tabel :/ No i w sumie nie wpisywałem tych wszystkich danych z nawiasów kwadratowych - bo nie mieliśmy tego aż tak szczegółowo omawianego na zajęciach...

Bartez 05.12.2012 19:00

Cytat:

Napisany przez Pagerus (Post 1233028)
A co oznacza <real> przy polu Ocena??

EDIT:
Wyszło mi w sumie coś takiego jak w załączniku.
Tak się tylko zastanawiam czy jestem w stanie uzupełnić tę bazę o dane. Chodzi mi głównie o to, że jak dla mnie to NazwaPrzedmiotu może funkcjonować potrójnie w bazie w zależności od TypOceny - jak E, Lab., Ćw.

Możesz jeszcze dodać jedną tabelę Ocena_Typ i tak samo ją zlinkować. Następnie robisz formularz z rozwijalnymi listami z zawartościa z tych tabel dla wszystkich pól (poza oceną) + pole dla oceny i voila.

Patrix 05.12.2012 19:02

Ilość załączników: 2
Cytat:

Napisany przez Bartez (Post 1233033)
Próbowałeś Patrix? Bo ja wpisałem i trzeba się natrudzić, żeby to znaleźć ;)

Tak!:)
Jeśli widzisz co innego, to tylko dowód na to, że każdy z nas jest w bańce indywidualnych popozycji wyników...
Załącznik 60848

Załącznik 60849

Cytat:

Napisany przez Bartez (Post 1233033)
Swoją drogą, z REAL to chyba jeszcze nigdy nie korzystałem, a trochę już siedzę w różnych bazach danych.

Ja może nie w różnych, ale w kilku.
Typ istnieje m. in. w MS SQL: http://msdn.microsoft.com/en-us/library/ms173773.aspx

Pagerus 05.12.2012 19:03

Kurde - chyba jestem zbyt głupi na to wszystko bo nie bardzo rozumiem co masz na myśli... :-( Jakie pola miałyby być w tej dodatkowej tabeli? Formularz z tymi rozwijalnymi listami to już chyba mnie całkiem przerasta. Czuję się jak tuman jakiś normalnie :/

Patrix 05.12.2012 19:05

Cytat:

Napisany przez Bartez (Post 1233035)
Możesz jeszcze dodać jedną tabelę Ocena_Typ i tak samo ją zlinkować. Następnie robisz formularz z rozwijalnymi listami z zawartościa z tych tabel dla wszystkich pól (poza oceną) + pole dla oceny i voila.

Jak tego pomysłu rzeczowo nie obroni to się może belfer przyczepić, a po co a na co :)

[OCENA]
NrOcena <int>
Ocena <real>

{1;1
2;2
3;3.5
4;4}

Cytat:

Napisany przez Pagerus (Post 1233037)
Kurde - chyba jestem zbyt głupi na to wszystko bo nie bardzo rozumiem co masz na myśli... :-( Jakie pola miałyby być w tej dodatkowej tabeli? Formularz z tymi rozwijalnymi listami to już chyba mnie całkiem przerasta. Czuję się jak tuman jakiś normalnie :/

Spokojnie, myślę, że wszystko po kolei!
Nasze posty pewnie wykraczają poza program zajęć, a to o czym piszemy będziesz mieć na następnych kilku...
Jest taka moda, że BD zaczyna się od Accessa, za niedługo poznasz więcej.


Cytat:

Napisany przez Pagerus (Post 1233028)
A co oznacza <real> przy polu Ocena??

EDIT:
Wyszło mi w sumie coś takiego jak w załączniku.
Tak się tylko zastanawiam czy jestem w stanie uzupełnić tę bazę o dane. Chodzi mi głównie o to, że jak dla mnie to NazwaPrzedmiotu może funkcjonować potrójnie w bazie w zależności od TypOceny - jak E, Lab., Ćw.

Powinno się dać...

[OSIAGNIECIA]
{1234;1235;1;5;E
1234;1235;1;4;LAB
1234;1235;1;3;ĆW}

Wszak na każdy przemiot przypada W/ĆW/LAB więc wypada poświęcić każdemu osobny wiersz.

Najpierw uzupełnij słowniki, potem tabele osiągnięcia bo inaczej będziesz oglądał błąd foreign key constraint failed :]

Bartez 05.12.2012 19:12

Ja miałem na myśli typ oceny, czyli E, Ćw, cośtam

[OCENA_TYP]
NrTypu <int>
Nazwa nvarchar(20)

Czyli:

1; Egzamin
2; Ćwiczenia
3; Cośtam

W tej końcowej tabeli, z której wszystko linkujesz masz mieć coś takiego

1; 1; 1; 1; 5

Co oznacza:
Id rekordu; Nr Pracownika, NrStudenta, Typ Oceny, Ocena

Na tym polega normalizacja, że nie masz powtarzających się danych. Co nie zawsze jest dobre, ale to już zupełnie inny temat :)

Edit: Jeszcze Nr Przedmiotu

Pagerus 05.12.2012 19:14

Cytat:

Napisany przez Bartez (Post 1233039)
Ja miałem na myśli typ oceny, czyli E, Ćw, cośtam

[OCENA_TYP]
NrTypu <int>
Nazwa nvarchar(20)

Czyli:

1; Egzamin
2; Ćwiczenia
3; Cośtam

W tej końcowej tabeli, z której wszystko linkujesz masz mieć coś takiego

1; 1; 1; 1; 5

Co oznacza:
Id rekordu; Nr Pracownika, NrStudenta, Typ Oceny, Ocena

Na tym polega normalizacja, że nie masz powtarzających się danych. Co nie zawsze jest dobre, ale to już zupełnie inny temat :)

Edit: Jeszcze Nr Przedmiotu

No ale spytam już jak totalny prostak i nieuk. Jak miałoby wyglądać drzewo z tą dodatkową tabelą? Wybaczcie - ale troszkę mnie podłamuje fakt, że jestem z tego aż tak zielony. Z innych przedmiotów takich problemów nie mam - ale te Bazy Danych to dla mnie jakieś science fiction :/
Zacząłem sobie uzupełniać bazę o dane - ale mam jakiś cholerny problem, że nie mogę wpisać oceny jak 4,5 - bo zaokrągla mi do 4 (próbowałem to jakoś zmienić ale on nic sobie z tego nie robi) - podobnie 3,5 zaokrągla do 4 :/

Bartez 05.12.2012 19:16

Jakie drzewo? :D

Pagerus 05.12.2012 19:17

Cytat:

Napisany przez Bartez (Post 1233041)
Jakie drzewo? :D

No drzewo relacji :)

Patrix 05.12.2012 19:20

Cytat:

Napisany przez Bartez (Post 1233039)
J
Na tym polega normalizacja, że nie masz powtarzających się danych. Co nie zawsze jest dobre, ale to już zupełnie inny temat :)

Zależy od potrzeb, zależy jaką normalizację potrzebujesz,
w każdej normalizacji układ będzie się różnił. Można mu jeszcze tam upchać relacje M:N :D

Przykładów można mu posiać, ale się chłop załamie więc proponuję małymi kroczkami. :spoko:

Cytat:

Napisany przez Pagerus (Post 1233040)
mam jakiś cholerny problem, że nie mogę wpisać oceny jak 4,5 - bo zaokrągla mi do 4 (próbowałem to jakoś zmienić ale on nic sobie z tego nie robi) - podobnie 3,5 zaokrągla do 4 :/

Zapewne typ danych w kolumnie zły masz, liczby całkowite.

Bartez 05.12.2012 19:24

Cytat:

Napisany przez Pagerus (Post 1233042)
No drzewo relacji :)

Tak samo, jak to, co wkleiłeś, z dodatkową tabelą i strzałką do TypOceny. Może zamieść ten plik Accessa, to zobaczymy, co tam wykombinowałeś :)

Pagerus 05.12.2012 19:25

Ilość załączników: 1
Nie wiem czy nie przekombinowałem - ale żeby wyświetlały mi się oceny w formacie 4,5 jako 'Rozmiar pola' przy ocenie oznaczonej jako 'Liczba" wybrałem 'Podwójna precyzja'. Inaczej jakoś mi wiecznie zaokrąglał. Tylko nie wiem czy tak może być :P

EDIT:
No dobra - wrzucam plik :D

Bartez 05.12.2012 19:28

Użyj real, jeżeli masz takie coś do wyboru. To oznacza liczbę z jednym miejscem po przecinku, czyli coś takiego, jak potrzebujesz.

Pagerus 05.12.2012 19:30

Cytat:

Napisany przez Bartez (Post 1233047)
Użyj real, jeżeli masz takie coś do wyboru. To oznacza liczbę z jednym miejscem po przecinku, czyli coś takiego, jak potrzebujesz.

No ja tam nie widzę opcji real :(

Bartez 05.12.2012 19:32

Wklej screena, jakie masz opcje do wyboru. Może po polsku to się jakoś inaczej nazywa ;)

Patrix 05.12.2012 19:33

To access, więc z tego co pamiętam podwójna precyzja może być: http://office.microsoft.com/pl-pl/ac...001224251.aspx

Podwójna precyzja ***8212; dla wartości liczbowych zmiennoprzecinkowych od -1,797 x 10^308 do +1,797 x 10^308, do piętnastu cyfr znaczących. Wymaga ośmiu bajtów pamięci.

Pagerus 05.12.2012 19:35

Ilość załączników: 1
No to wrzucam zrzut.

Bartez 05.12.2012 19:36

No jeżeli nie zrobi z 4,5 np 4,5000000 to może być :)

Pagerus 05.12.2012 19:38

Cytat:

Napisany przez Bartez (Post 1233053)
No jeżeli nie zrobi z 4,5 np 4,5000000 to może być :)

Aż tak źle to nie będzie :P W polu 'Miejsce dziesiętne' wstawiłem '1' :D

Bartez 05.12.2012 19:40

Pojedyncza precyzja w tym przypadku chyba będzie lepsze. Dodaj jeszcze koniecznie ten typ oceny, bo inaczej nie bedziesz mial znormalizowanej tabeli.

Pagerus 05.12.2012 19:46

Kurcze - w tym momencie wszystko mi działa - a boję się, że jak jeszcze będę coś kombinował to sobie popsuję... :/

Bartez 05.12.2012 19:48

To sobie zrób kopię :P

Pagerus 05.12.2012 19:56

W sumie wydaje mi się, że ta dodatkowa tabela powoduje, iż dane nie są już tak przejrzyste, bo nie widać wprost czy jest to ocena z egzaminu, laborki czy ćwiczeń...

Bartez 05.12.2012 19:58

To jest jedna z wad normalizacji :) W zadaniu masz, że dane mają być znormalizowane, więc nie patrz na to, czy to jest wygodne, czy nie.

Pagerus 05.12.2012 20:02

Cytat:

Napisany przez Bartez (Post 1233062)
To jest jedna z wad normalizacji :) W zadaniu masz, że dane mają być znormalizowane, więc nie patrz na to, czy to jest wygodne, czy nie.

Na wszelki wypadek wyślę babce dwa rozwiązania :D Niech sobie wybiera, które woli (ja wolę mimo wszystko to gdzie widać opis E., Lab. Ćw.) :P
Panowie - jeszcze raz wielkie dzięki :piwo: :piwo: :piwo:

Bartez 05.12.2012 20:37

To dlaczego nie wolisz tam, gdzie widać nazwisko i nazwę przedmiotu? :>

Pagerus 06.12.2012 06:09

Hmmm... bo ja wiem? Jakoś mi to wyszło i głównie z tego się cieszę :D


Wszystkie czasy w strefie CET. Aktualna godzina: 03:19.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.