To jest stara wersja strony!


Projekt logiczny

1. Projektowanie tabel.

Kod SQL tworzący kompletną strukturę danych wykorzystywaną w projekcie wygląda następująco:

SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = FALSE;
SET client_min_messages = warning;
SET escape_string_warning = off;
 
SET search_path = public, pg_catalog;
 
--
-- Name: dblink_pkey_results; Type: TYPE; Schema: public; Owner: rewersy
--
 
CREATE TYPE dblink_pkey_results AS (
	"position" INTEGER,
	colname text
);
 
ALTER TYPE public.dblink_pkey_results OWNER TO rewersy;
 
--
-- Name: clean_emp(); Type: FUNCTION; Schema: public; Owner: rewersy
--
 
CREATE FUNCTION clean_emp() RETURNS INTEGER
    AS $$
SELECT numer_pokoju FROM pokoje;
$$
    LANGUAGE SQL;
 
 
ALTER FUNCTION public.clean_emp() OWNER TO rewersy;
 
SET default_tablespace = '';
 
SET default_with_oids = FALSE;
 
--
-- Name: autorzy; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE autorzy (
    imie CHARACTER VARYING(45) NOT NULL,
    nazwisko CHARACTER VARYING(45) NOT NULL,
    id INTEGER NOT NULL
);
 
 
ALTER TABLE public.autorzy OWNER TO rewersy;
 
--
-- Name: autorzy_id_seq; Type: SEQUENCE; Schema: public; Owner: rewersy
--
 
CREATE SEQUENCE autorzy_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
 
 
ALTER TABLE public.autorzy_id_seq OWNER TO rewersy;
 
--
-- Name: autorzy_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: rewersy
--
 
ALTER SEQUENCE autorzy_id_seq OWNED BY autorzy.id;
 
 
--
-- Name: autorzy_id_seq; Type: SEQUENCE SET; Schema: public; Owner: rewersy
--
 
SELECT pg_catalog.setval('autorzy_id_seq', 161, TRUE);
 
 
--
-- Name: ksiazki; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE ksiazki (
    id INTEGER NOT NULL,
    tytul CHARACTER VARYING(45) NOT NULL,
    rok_wydania INTEGER,
    login CHARACTER VARYING(45),
    wydawnictwo CHARACTER VARYING(30)
);
 
 
ALTER TABLE public.ksiazki OWNER TO rewersy;
 
--
-- Name: ksiazki_id_seq; Type: SEQUENCE; Schema: public; Owner: rewersy
--
 
CREATE SEQUENCE ksiazki_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
 
 
ALTER TABLE public.ksiazki_id_seq OWNER TO rewersy;
 
--
-- Name: ksiazki_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: rewersy
--
 
ALTER SEQUENCE ksiazki_id_seq OWNED BY ksiazki.id;
 
 
--
-- Name: ksiazki_id_seq; Type: SEQUENCE SET; Schema: public; Owner: rewersy
--
 
SELECT pg_catalog.setval('ksiazki_id_seq', 169, TRUE);
 
 
--
-- Name: napisali; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE napisali (
    id_autora INTEGER NOT NULL,
    id_ksiazka INTEGER NOT NULL
);
 
 
ALTER TABLE public.napisali OWNER TO rewersy;
 
--
-- Name: przetrzymuje; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE przetrzymuje (
    data_wypozyczenia DATE,
    id_ksiazka INTEGER NOT NULL,
    login CHARACTER VARYING(45) NOT NULL
);
 
 
ALTER TABLE public.przetrzymuje OWNER TO rewersy;
 
--
-- Name: rezerwuje; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE rezerwuje (
    id_ksiazka INTEGER NOT NULL,
    login CHARACTER VARYING(45) NOT NULL
);
 
 
ALTER TABLE public.rezerwuje OWNER TO rewersy;
 
--
-- Name: uzytkownik; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE uzytkownik (
    login CHARACTER VARYING(45) NOT NULL,
    imie CHARACTER VARYING(45) NOT NULL,
    nazwisko CHARACTER VARYING(45),
    e_mail CHARACTER VARYING(50),
    haslo CHARACTER VARYING(32),
    budynek CHARACTER VARYING(10),
    pokoj CHARACTER VARYING(10)
);
 
 
ALTER TABLE public.uzytkownik OWNER TO rewersy;
 
--
-- Name: zaprosil; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE zaprosil (
    zaproszony CHARACTER VARYING(45) NOT NULL,
    login CHARACTER VARYING(45)
);
 
 
ALTER TABLE public.zaprosil OWNER TO rewersy;
 
--
-- Name: zaproszony; Type: TABLE; Schema: public; Owner: rewersy; Tablespace: 
--
 
CREATE TABLE zaproszony (
    id INTEGER NOT NULL,
    login_polecil CHARACTER VARYING(45),
    hash text,
    imie CHARACTER VARYING(45),
    nazwisko CHARACTER VARYING(45),
    email CHARACTER VARYING(50)
);
 
 
ALTER TABLE public.zaproszony OWNER TO rewersy;
 
--
-- Name: zaproszony_id_seq; Type: SEQUENCE; Schema: public; Owner: rewersy
--
 
CREATE SEQUENCE zaproszony_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
 
 
ALTER TABLE public.zaproszony_id_seq OWNER TO rewersy;
 
--
-- Name: zaproszony_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: rewersy
--
 
ALTER SEQUENCE zaproszony_id_seq OWNED BY zaproszony.id;
 
 
--
-- Name: zaproszony_id_seq; Type: SEQUENCE SET; Schema: public; Owner: rewersy
--
 
SELECT pg_catalog.setval('zaproszony_id_seq', 58, TRUE);
 
 
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: rewersy
--
 
ALTER TABLE autorzy ALTER COLUMN id SET DEFAULT NEXTVAL('autorzy_id_seq'::regclass);
 
 
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ksiazki ALTER COLUMN id SET DEFAULT NEXTVAL('ksiazki_id_seq'::regclass);
 
 
--
-- Name: id; Type: DEFAULT; Schema: public; Owner: rewersy
--
 
ALTER TABLE zaproszony ALTER COLUMN id SET DEFAULT NEXTVAL('zaproszony_id_seq'::regclass);
 
 
--
-- Data for Name: autorzy; Type: TABLE DATA; Schema: public; Owner: rewersy
--
 
--
-- Name: autorzy_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY autorzy
    ADD CONSTRAINT autorzy_pkey PRIMARY KEY (id);
 
 
--
-- Name: ksiazki_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY ksiazki
    ADD CONSTRAINT ksiazki_pkey PRIMARY KEY (id);
 
 
--
-- Name: napisali_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY napisali
    ADD CONSTRAINT napisali_pkey PRIMARY KEY (id_autora, id_ksiazka);
 
 
--
-- Name: przetrzymuje_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY przetrzymuje
    ADD CONSTRAINT przetrzymuje_pkey PRIMARY KEY (id_ksiazka, login);
 
 
--
-- Name: rezerwuje_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY rezerwuje
    ADD CONSTRAINT rezerwuje_pkey PRIMARY KEY (id_ksiazka, login);
 
 
--
-- Name: uzytkownik_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY uzytkownik
    ADD CONSTRAINT uzytkownik_pkey PRIMARY KEY (login);
 
 
--
-- Name: zaprosil_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY zaprosil
    ADD CONSTRAINT zaprosil_pkey PRIMARY KEY (zaproszony);
 
 
--
-- Name: zaproszony_pkey; Type: CONSTRAINT; Schema: public; Owner: rewersy; Tablespace: 
--
 
ALTER TABLE ONLY zaproszony
    ADD CONSTRAINT zaproszony_pkey PRIMARY KEY (id);
 
 
--
-- Name: ksiazki_login_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY ksiazki
    ADD CONSTRAINT ksiazki_login_fkey FOREIGN KEY (login) REFERENCES uzytkownik(login) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: napisali_id_autora_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY napisali
    ADD CONSTRAINT napisali_id_autora_fkey FOREIGN KEY (id_autora) REFERENCES autorzy(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: napisali_id_ksiazka_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY napisali
    ADD CONSTRAINT napisali_id_ksiazka_fkey FOREIGN KEY (id_ksiazka) REFERENCES ksiazki(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: przetrzymuje_id_ksiazka_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY przetrzymuje
    ADD CONSTRAINT przetrzymuje_id_ksiazka_fkey FOREIGN KEY (id_ksiazka) REFERENCES ksiazki(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: przetrzymuje_login_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY przetrzymuje
    ADD CONSTRAINT przetrzymuje_login_fkey FOREIGN KEY (login) REFERENCES uzytkownik(login) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: rezerwuje_id_ksiazka_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY rezerwuje
    ADD CONSTRAINT rezerwuje_id_ksiazka_fkey FOREIGN KEY (id_ksiazka) REFERENCES ksiazki(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: rezerwuje_login_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY rezerwuje
    ADD CONSTRAINT rezerwuje_login_fkey FOREIGN KEY (login) REFERENCES uzytkownik(login) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: zaprosil_login_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY zaprosil
    ADD CONSTRAINT zaprosil_login_fkey FOREIGN KEY (login) REFERENCES uzytkownik(login) ON UPDATE RESTRICT ON DELETE RESTRICT;
 
 
--
-- Name: zaproszony_login_polecil_fkey; Type: FK CONSTRAINT; Schema: public; Owner: rewersy
--
 
ALTER TABLE ONLY zaproszony
    ADD CONSTRAINT zaproszony_login_polecil_fkey FOREIGN KEY (login_polecil) REFERENCES uzytkownik(login) ON UPDATE RESTRICT ON DELETE RESTRICT;

2. Słownki danych.

autorzy:

  • id - typ: serial, niepusty. Klucz podstawowy tabeli autorzy
  • imie - typ:
  • nazwisko - typ: ,

ksiazki:

  • id - typ: serial, niepusty, Klucz podstawowy tabeli ksiażki
  • tytul - typ: character varying(45), Tytuł książki, która jest dostępna w systemie
  • rok_wydania - typ: integer, Rok wydania książki
  • login - typ: character varying(45), klucz obcy - tabela 'uzytkownik' Login użytkownika, który jest właścicielem książki
  • wydawnictwo - typ: character varying(30), Wydawnictwo, które wydało książkę

napisali:

  • id_autora - typ: integer, niepusty, klucz obcy z tabeli 'autorzy', klucz podstawowy: (id_autora, id_ksiazka), Identyfikator autora
  • id_ksiazka - typ: integer, niepusty, klucz obcy z tabeli 'ksiazki', klucz podstawowy: (id_autora, id_ksiazka), Identikator książki

uzytkownik:

  • login - typ: character varying(45), niepusty, Klucz podstawowy
  • imie - typ: character varying(45), niepusty, Imię użytkownika
  • nazwisko - typ: character varying(45), Nazwisko użytkownika
  • e_mail - typ: character varying(50), E-mail użytkownika
  • haslo - typ: character varying(32), hasło użytkownika do systemu, trzymane w bazie w postaci zakodowanej
  • budynek - typ: character varying(10), Nazwa budynku AGH, w którym pracuje użytkownik systemu
  • pokoj - typ: character varying(10), Pokój na uczelni AGH, gdzie użytkownik pracuje użytkownika systemu

przetrzymuje:

  • data_wypozyczenia - typ: date, Data wypożyczenia książki
  • id_ksiazka - typ: integer, niepusty, Klucz obcy z tabeli 'ksiazki' Identyfikator książki, która została pożyczona
  • login - typ: character varying(45), niepusty, klucz obcy z tabeli 'uzytkownik' Login użytkownika, który wypożyczył daną książkę
  • - typ: ,
  • - typ: ,
  • - typ: ,

3. Analiza zależności funkcyjnych i normalizacja tabel.

4. Denormalizacja struktury tabel.

5. Projektowanie operacji na danych.

pl/dydaktyka/sbd/2009/projekty/rewersy/logiczny.1284193294.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0