'Dodane-pliki,modyf-readme'

This commit is contained in:
Krzysztof Wołowiec 2019-06-14 23:55:53 +02:00
parent 89cde8daaf
commit 1c6e831db5
5 changed files with 113 additions and 1 deletions

View File

@ -6,7 +6,28 @@
Projekt bazy danych dla firmy, która dostarcza i prowadzi samoobsługowe wypożyczalnie rowerów miejskich, będące alternatywą dla komunikacji publicznej.
**Celem** bazy danych jest wsparcie w organizowaniu usług wypożyczania rowerów miejskich, poprzez rejestrowanie wypożyczeń i zwrotów, kontrolę stanu poszczególnych stacji rowerowych i nadzorowanie systemu dostarczania i serwisowania rowerów.
**Celem** bazy danych jest wsparcie organizowania usług wypożyczania rowerów miejskich, poprzez rejestrowanie wypożyczeń i zwrotów, kontrolę stanu poszczególnych stacji rowerowych i rejestrowanie aktywności marketingowej względem rowerów.
## Diagram związków encji (ERD)
!()[erd.png]
!()[erd2.png]
## Model relacyjny (RM)
Oznaczenia: <u>klucz podstawowy</u>, *klucz obcy*
1. Uzytkownicy: <u>UID</u>, login, imie, nazwisko, email, data_od, ostatnia_aktywnosc, saldo_konta, status_konta
2. Rowery: <u>RID</u>, typ, stan
3. Stacje: <u>SID</u>, miejsca, miejsca_zajete, miejsca_wolne, dl_geogr, szer_geogr, osiedle, ulica, stan
4. Stan_stacji: *stacja*, *rower*, data_dodania
5. Wypozyczenia; <u>WID</u>, *uzytkownik*, *rower*, *stacja_wyp*, godzina_wyp, *stacja_zwrotu*, godzina zwrotu, status
6. Kampanie: <u>nazwa</u>, firma, rowery, od, do
7. Reklamy: *RID*, *reklama*, od, do
!()[baza-schemat.PNG]
## Opis funkcjonalności
*

BIN
baza-schemat.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

91
create_db.sql Normal file
View File

@ -0,0 +1,91 @@
USE master;
CREATE DATABASE Rowerownia;
GO
USE Rowerownia;
GO
SET LANGUAGE polski;
GO
CREATE TABLE Uzytkownicy
(
UID int PRIMARY KEY,
login varchar(16) UNIQUE NOT NULL,
imie varchar(32) NOT NULL,
nazwisko varchar(64) NOT NULL,
email varchar(64) UNIQUE NOT NULL,
data_od datetime NOT NULL,
ostatnia_aktywnosc datetime,
saldo_konta money NOT NULL DEFAULT 0,
status_konta varchar(16) NOT NULL,
CONSTRAINT ck_dane_osobowe_litery CHECK ((nazwisko LIKE '[A-Z]%') AND (imie LIKE '[A-Z]%')),
CONSTRAINT ck_mail CHECK (email LIKE '%@%'),
CONSTRAINT ck_status_konta CHECK (email LIKE '%@%')
);
CREATE TABLE Rowery
(
RID int PRIMARY KEY,
typ INT NOT NULL,
stan varchar(32) NOT NULL DEFAULT('sprawny'),
CONSTRAINT ck_bike_type CHECK (typ < 4), -- zalezne od liczby typow rowerow
CONSTRAINT ck_stan_roweru CHECK (stan in ('sprawny','uszkodzony', 'w naprawie', 'zagubiony'))
);
CREATE TABLE Stacje
(
SID int PRIMARY KEY,
miejsca int NOT NULL,
miejsca_zajete int NOT NULL,
miejsca_wolne int NOT NULL,
dl_geogr float,
szer_geogr float,
osiedle varchar(64),
ulica varchar(64),
stan varchar(16),
CONSTRAINT ck_stan_stacji CHECK (stan IN ('nieczynna', 'pełna', 'pusta', 'niepełna')),
CONSTRAINT ck_miejsca CHECK (miejsca_wolne + miejsca_zajete <= miejsca)
);
CREATE TABLE Wypozyczenia
(
WID int PRIMARY KEY,
uzytkownik int FOREIGN KEY REFERENCES Uzytkownicy(UID),
rower int FOREIGN KEY REFERENCES Rowery(RID),
stacja_wyp int FOREIGN KEY REFERENCES Stacje(SID),
godzina_wyp datetime NOT NULL,
stacja_zwrotu int FOREIGN KEY REFERENCES Stacje(SID),
godzina_zwrotu datetime,
status varchar(32),
CONSTRAINT ck_status CHECK (status IN ('zakończone', 'aktywne'))
);
CREATE TABLE Stan_stacji
(
stacja int FOREIGN KEY REFERENCES Stacje(SID),
rower int FOREIGN KEY REFERENCES Rowery(RID),
data_dodania datetime
);
CREATE TABLE Kampanie
(
nazwa varchar(64) PRIMARY KEY,
firma varchar(64) NOT NULL,
rowery int, -- liczba rowerow
od datetime,
do datetime,
CONSTRAINT ck_date CHECK(od < do)
);
CREATE TABLE Reklamy
(
RID int FOREIGN KEY REFERENCES Rowery(RID),
reklama varchar(64) FOREIGN KEY REFERENCES Kampanie(nazwa),
od datetime,
do datetime,
CONSTRAINT ck_data CHECK(od < do)
);

BIN
erd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
erd2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB