lekcja 2 - podstawowe pojęcia i podstawowe zapytania sql
TRANSCRIPT
Repeta
Modelowanie rzeczywistości
Modelowanie i normalizacja
• Normalizacja to bezstratny proces organizowania danych w tabelach mający na celu zmniejszenie ilości danych składowanych w bazie oraz wyeliminowanie potencjalnych anomalii.
http://www.sqlpedia.pl/projektowanie-i-normalizacja-bazy-danych/
Różne modele baz danych
• hierarchiczny model danych,
• relacyjny model danych,
• obiektowy model danych, obiektowo-relacyjny.
Hierarhiczny
• W modelu hierarchicznym dane są przechowywane na zasadzie rekordów nadrzędnych-podrzędnych, tzn. rekordy przypominają strukturę drzewa. Każdy rekord (z wyjątkiem głównego) jest związany z dokładnie jednym rekordem nadrzędnym.
Obiektowa baza danych
• Zbiór obiektów, których zachowanie się, stan oraz związki są określone zgodnie z obiektowym modelem danych. Obiektowy system zarządzania bazą danych jest systemem wspomagającym definiowanie, zarządzanie, utrzymywanie, zabezpieczanie i udostępnianie obiektowej bazy danych.
Relacyjne
Relacyjne Bazy Danych
Nazewnictwo
Atrybut
Krotka
Encja
Relacje
Relacje
• Typ relacji jeden-do-jednego występuje wtedy, gdy pojedynczy rekord w jednej tabeli jest powiązany z pojedynczym rekordem w innej tabeli i odwrotnie. Na przykład do jednego wyspecjalizowanego serwera plików może być przydzielony jeden technik.
• Typ relacji jeden-do-wielu występuje wtedy, gdy jeden rekord w tabeli jest powiązany z wieloma rekordami w innej tabeli. Na przykład jeden pracownik może korzystać z kilku składników majątku, takich jak komputer, krzesło i biurko.
• Typ relacji wiele-do-wielu występuje wtedy, gdy kilka rekordów w jednej tabeli jest powiązanych z kilkoma rekordami w innej tabeli. Na przykład w firmie może się znajdować wiele komputerów obsługiwanych przez kilku techników. Wielu techników może być odpowiedzialnych za wiele komputerów.
Relacje: klucz główny i klucz obcyAng: Primary key, foreign key
Jeden
wiele
Plan
1. Teoria: poważnie o bazach danych, typy danych
2. Sprawdzenie MySQL - logowanie
3. Model danych – faktury i płace
1. Uwzględnia typy, relacje
4. Przeniesienie modelu do systemu bazy danych
5. Wykonywanie poleceń – CREATE TABLE, ALTER, SELECT itd.
6. Koniec – ok. 12:30
Definicja bazy danych
Baza danych (ang. database, DB) to zbiór danych zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych.Źródło: Wikiperdia
Zbiór danych reprezentujący wybrany fragmentrzeczywistości.źródło:Banachowski
Zbiór danych trwałych wykorzystywanych przez system aplikacji danej organizacji (firma, bank, szpital, etc.)źródło: Date
Główne cechy bazy danych
• Trwałość — najczęściej dane są przechowywaneprzez długi okres czasu, zazwyczaj nieokreślony,
• Duże wolumeny — duża liczba danych wymagainnych metod dostępu niż liniowe,
• Zgodność z rzeczywistością — w związku z tym, iżbaza stanowi odzwierciedlenie fragmenturzeczywistości, to niezbędne jest zapewnieniezgodności danych z bazy z tymi rzeczywistymi,które ulegają zmianom. Model danych.
Właściwości bazy danych
• Spójność danych — poprawność danych z punktuwidzenia kryteriów: wiernego odzwierciedleniadanych rzeczywistych, spełnienie ograniczeńnałożonych przez użytkowników, odporności naanomalie dostępu, awarie sprzętowo-program oweoraz błędy użytkowników,
• Współdzielenie danych — dane przechowywane wbazie powinny być dostępne dla wielu osób w tymsamym czasie, należy zapewnić rozwiazywaniekonfliktów typu zapis-zapis,
• Integracja danych — baza danych powinna byćzbiorem nie posiadającym danych redundancyjnych;dane redundancyjne to dane powtarzające się,
Właściwości bazy danych cd
• Integralność danych — baza powinna zapewniaćaktualizację danych po obu stronach związkówbędących odzwierciedleniem rzeczywistości,zapobiegnie to sprzeczności pomiędzy dwomapozycjami reprezentującymi ten sam fakt, powinnaistnieć możliwość nakładania ograniczeńintegralnościowych,
• Bezpieczeństwo danych — aby zapewnić integralnośćdanych należy zabezpieczyć dostęp do bazy,wprowadzenie autoryzacji dostępu: dostęp tylko dlaużytkowników identyfikowanych unikalną nazwą ihasłem, a także przydzielanie określonych uprawnieńdo określonych części bazy danych,
System zarządzania bazą danych (SZBD)
• Zarządza, organizuje, umożliwia dostęp
Oracle, IBM, Microsoft,Sybase,Access,MySQL, PostgreSQL,FireBird
I inne
Dostęp do bazy MySQL
http://hostownik.pl/phpmyadmin/
Login: netcamp_maius(pozycja_dziennik)
Hasło: maius
Podstawowe typy danych
Typ Opis
VARCHAR[Length] Pole tekstowe o zmiennej długości
TINYTEXT Łańcuch o maksymalnej długości 255 znaków
TEXT Łańcuch o maksymalnej długości 65535 znaków
MEDIUMTEXT Łańcuch o maksymalnej długości 16777215 znaków
INT[Length]Liczby z zakresu od -2147483648 do 2147483647 lub liczby dodatnie od 0 do 4294967295
DECIMAL[Length, Decimals]Liczba typu DOUBLE przechowywana w postaci łańcucha co pozwala na zastosowanie stałej liczby miejsc po przecinku
DATE Data w formacie YYYY-MM-DD
DATETIME Data w formacie YYYY-MM-DD HH:MM:SS
ENUMEnumeracja (wyliczenie). W kolumnie może się znaleźć jedna z podanych wartości
Modelowanie rzeczywistościBaza danych księgowo-płacowych.
Zadanie
• Firma handlująca częściami do samochodów rozwija się, zatrudnia nowych pracowników, liczba kontrahentów rośnie. Właściciel firmy chce zorganizować sferę księgowości i płac pracowników. Zleca Tobie utworzenie bazy danych w której przechowywać będzie informacje o pracownikach, stanowiskach, płacach i działach. Dodatkowo, chce mieć bazę faktur kosztowych (otrzymanych przez firmę) -chce by każda faktura przypisana była do pracownika, który dokonał zakupu. Poniżej opisał sposób w jaki weryfikował będzie, że baza danych zaprojektowana została poprawnie.
Zadanie Utwórz bazę danych księgowo-płacowych.
Firma handlująca częściami do samochodów rozwija się, zatrudnia nowych pracowników, liczba kontrahentów rośnie. Właściciel firmychce zorganizować sferę księgowości i płac pracowników. Zleca Tobie utworzenie bazy danych w której przechowywać będzie informacje
o pracownikach, stanowiskach, płacach i działach. Dodatkowo, chce mieć bazę faktur kosztowych (otrzymanych przez firmę) - chce by każda faktura przypisana była do pracownika, który dokonał zakupu. Poniżej opisał sposób w jaki weryfikował będzie, że baza danych
zaprojektowana została poprawnie.
Przygotowanie - wszyscy te same dane
Dodaj 4 stanowiska, w tym mechanik (3 500 zł), sprzedawca (2000), starszy sprzedawca (3500).Dodaj działy: naprawy, magazyn, sklepDodaj 10 pracowników, w tym Jana (mechanika), Marka (sprzedawce) i Konrada (sprzedawce)Dodaj 10 faktur w tym 3 zakupy Marka, 2 Konrada i 5 Jana
Działanie Co chce wiedzieć? PodpowiedźKto pracuje na stanowisku starszego sprzedawcy? Charakterystykę osób SELECTIlu jest "normalnych" sprzedawców? Liczba sprzedawców COUNT
Ilu jest sprzedawców ogółem (uwzględnij również "starszych" sprzedawców") Liczba sprzedawców oraz starszych sprzedawcówIN bądź OR, COUNT
Czy pracuje u nas jakiś "jan"? Jeśli pracuje - informacje o nim / nich LCASESuma premii dla poszczególnych pracowników Suma premii, user id GROUP BYSuma premii dla poszczególnych pracowników Suma premii, dane pracownika JOIN
Kto pracuje w jakich działach?Charakterystykę osób (tylko imie, nazwisko), nazwę działu JOIN
Kto zarabia więcej niż 3000 zł (tylko podstawa)? Nie było wcześniej w wymaganiach. Co teraz? JOINDodaj premię dla Marka (300zł), Konrada (800zł) za zeszły miesiąc Charakterystyka osób, kwoty premie BETWEEN
Ile zostało wypłacone w ostatnim miesiacu? Suma wypłat (również premie)SUM, JOIN, BETWEEN
Jakie i komu zostały przyznane premie w zeszłym miesiącu? Charakterystykę osób
Kto dokonał największej liczby zakupów? JOIN
Dodaj premię dla Jana - 300 zł za dobrze wykonaną robotę za aktualny miesiąc INSERTIle zarobili poszczególni pracownicy w zeszłym miesiącu (licząc premie)? Imie, zarobekKto zarobił w ostatnim miesiącu więcej niż 3 000 zł licząc premie?Korekta faktury: wybierz 1 fakture i zmień nip wystawcy na 851213333 UPDATE
Podsumowanie
Typy danych
Typ Opis
CHAR[Length] Pole o stałej długości, przechowuje od 0 do 255 znaków
VARCHAR[Length] Pole tekstowe o zmiennej długości
TINYTEXT Łańcuch o maksymalnej długości 255 znaków
TEXT Łańcuch o maksymalnej długości 65535 znaków
MEDIUMTEXT Łańcuch o maksymalnej długości 16777215 znaków
LONGTEXT Łańcuch o maksymalnej długości 4294967295 znaków
TINYINT[Length] Liczby z zakresu od -128 do 127 lub liczby dodatnie od 0 do 255
SMALLINT[Length] Liczby z zakresu od -32768 do 32767 lub liczby dodatnie od 0 do 65535
MEDIUMINT[Length]Liczby z zakresu od -8388608 do 8388607 lub liczby dodatnie od 0 do 16777215
INT[Length]Liczby z zakresu od -2147483648 do 2147483647 lub liczby dodatnie od 0 do 4294967295
Typy danych cd.
BIGINT[Length]Liczby z zakresu od -9223372036854775808 do 9223372036854775807 lub liczby dodatnie od 0 do 18446744073709551615
FLOAT Mała liczba rzeczywista, zmiennoprzecinkowa
DOUBLE[Length, Decimals]
Duża liczba rzeczywista, zmiennoprzecinkowa
DECIMAL[Length, Decimals]
Liczba typu DOUBLE przechowywana w postaci łańcucha co pozwala na zastosowanie stałej liczby miejsc po przecinku
DATE Data w formacie YYYY-MM-DD
DATETIME Data w formacie YYYY-MM-DD HH:MM:SS
TIMESTAMPData w formacie YYYYMMDDHHMMSS; dopuszczalny zakres kończy się na rok 2037
TIME Data w formacie HH:MM:SS
ENUMEnumeracja (wyliczenie). W kolumnie może się znaleźć jedna z podanych wartości
Operatory
OPERATOR FUNKCJA PRZYKŁAD
NOT Służy do sprawdzania wartości przeciwnych. Można go używać przed dowolnym operatorem porównania, z wyjątkiem operatora IS NOT NULL.
NOT > 10 (to samo co<=10).
IN Służy do sprawdzania, czy wartości są równe istniejącym elementom listy. Porównywaną wartością musi być lista rozdzielana przecinkami ujęta w nawiasy.
IN ("Tokio","Paryż","Moskwa")
BETWEEN Służy do sprawdzania, czy wartość należy do zakresu. Należy użyć dwóch wartości do porównania —minimalnej i maksymalnej — i rozdzielić te wartości separatorem AND.
BETWEEN 100 AND 1000(to samo co >=100 AND <=1000)
LIKE Służy do porównywania wartości z ciągami wzorcowymi w polach typu Tekst lub Nota.
LIKE "Geo*"
Operatory cd.
IS NOT NULL Wymusza na użytkownikach wprowadzanie wartości w danym polu. Działa tak samo jak ustawienie właściwości pola Wymagane na Tak. Jeśli jednak właściwość Wymagane jest włączona, a użytkownik nie wprowadzi wartości, program Access wyświetli nieco niezrozumiały komunikat o błędzie. Zwykle korzystanie z bazy danych jest łatwiejsze w przypadku użycia wyrażenia IS NOT NULL i wprowadzenia łatwego do zrozumienia komunikatu we właściwości Tekst reguły spr. poprawności.
IS NOT NULL
AND Służy do określania, że wszystkie wprowadzane dane muszą być prawdziwe lub mieścić się w określonych granicach.
>= #2007-01-01# AND <=#2008-03-06#
UWAGA Operatora ANDmożnaużyć także w celu połączenia reguł sprawdzania poprawności. Na przykład: NOT "UK" AND LIKE "U*".
OR Służy do określania, że jedna lub więcej wartości może być prawdziwych.
styczeń OR luty
<</b> Mniejsze niż.<= Mniejsze lub
równe.> Większe niż.>= Większe lub
równe.= Równe.<> Różne od.
Przykłady reguł sprawdzania poprawności
REGUŁA SPRAWDZANIA POPRAWNOŚCI
TEKST REGUŁY SPRAWDZANIA POPRAWNOŚCI
<>0 Wprowadź wartość różną od zera.
>=0 Wartość musi być równa lub większa niż zero.— lub —Musisz wprowadzić liczbę dodatnią.
0 or >100 Wartość musi być równa 0 lub większa niż 100.
BETWEEN 0 AND 1 Wprowadź wartość ze znakiem procentu. (Do użycia w przypadku pól, w których wartości liczbowe są przechowywane w postaci wartości procentowych).
<”2007-01-01” Wprowadź datę sprzed 2007 roku.
>=”2007-01-01” AND <”2008-01-01”
Data musi przypadać w 2007 roku.
<Date() Data urodzenia nie może być datą w przyszłości.
M Or K Wprowadź M w przypadku mężczyzny lub K w przypadku kobiety.
LIKE "[A-Z]*@[A-Z].com" OR "[A-Z]*@[A-Z].net" OR "[A-Z]*@[A-Z].org"
Wprowadź prawidłowy adres e-mail w domenie com, net lub org.
[DataDostawy]<=[DataZamówienia]+30
Wprowadź datę dostawy przypadającą najwyżej 30 dni po dacie zamówienia.
[DataKońcowa]>=[DataPoczątkowa]
Wprowadź datę końcową równą dacie początkowej lub późniejszą.
StrComp(UCase([Nazwisko]),[Nazwisko],0) = 0
Dane w polu Nazwisko muszą być wpisane wielkimi literami.
>=Int(Now()) Wprowadź dzisiejszą datę.