== ER дијаграм [[Image(baziER.png)]] == Податочни побарувања === Ентитети 1. **Lab Equipment** - ентитет за лабораториската опрема - equipment_id - SERIAL (примарен клуч) - equipment_name - VARCHAR(50) (атрибут, не може да биде NULL, уникатен) - type - VARCHAR(50) (атрибут) - description - TEXT (атрибут) - safety_info - TEXT (атрибут) 2. **User** - ентитет за корисникот кој се логира - user_id - SERIAL (примарен клуч) - user_name - VARCHAR(30) (атрибут, не може да биде NULL) - user_surname - VARCHAR(30) (атрибут, не може да биде NULL) - password - VARCHAR(30) (атрибут, не може да биде NULL) - role - ENUM('student', 'teacher') (атрибут, не може да биде NULL) 3. **Elements** - ентитет за хемиските елементи - element_id - SERIAL (примарен клуч) - symbol - VARCHAR(2) (атрибут, не може да биде NULL, уникатен) - element_name - VARCHAR(50) (атрибут, не може да биде NULL) - atomic_number - INT (атрибут, не може да биде NULL) - atomic_weight - FLOAT (атрибут, не може да биде NULL) - melting_point - FLOAT (атрибут) - boiling_point - FLOAT (атрибут) - hazard_type - VARCHAR(50) (атрибут) - description_element - TEXT (атрибут) 4. **Reaction** - ентитет за хемиските реакции - reaction_id - SERIAL (примарен клуч) - element1_id - INT (надворешен клуч, не може да биде NULL) - element2_id - INT (надворешен клуч, не може да биде NULL) - product - VARCHAR(50) (атрибут) - conditions - TEXT (атрибут) 5. **Experiment** - ентитет за експериментите - experiment_id - SERIAL (примарен клуч) - user_id - INT (надворешен клуч, не може да биде NULL) - reaction_id - INT (надворешен клуч, не може да биде NULL) - result - TEXT (атрибут) - time_stamp - TIMESTAMP DEFAULT CURRENT_TIMESTAMP (атрибут) - safety_warning - TEXT (атрибут) == Релации - **!UserCreatesLabEquipment** – 1:N еден корисник може да создаде повеќе лабораториски инструменти. - **!UserViewsLabEquipment** – N:M повеќе корисници можат да гледаат ист лабораториски инструмент. - **!ExperimentUtilizesEquipment** – N:M еден експеримент може да користи повеќе лабораториски инструменти, а еден инструмент може да се користи во повеќе експерименти. - **!UserViewsExperiment** – N:M повеќе корисници можат да гледаат ист експеримент. - **!UserCreatesReaction** – 1:N еден корисник може да создаде повеќе реакции. - **!ElementsInReaction** – 1:N една реакција може да содржи повеќе хемиски елементи (реактантни). - **!UserCreatesElement** – 1:N еден корисник може да создаде повеќе хемиски елементи. - **!UserViewsElement** – N:M повеќе корисници можат да гледаат ист хемиски елемент.