Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • garbus-wiki garbus-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 35
    • Issues 35
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GarbUs
  • garbus-wikigarbus-wiki
  • Wiki
  • banco_dados

banco_dados · Changes

Page history
Update banco_dados authored Jun 24, 2021 by Mario A. S. S. De Araujo's avatar Mario A. S. S. De Araujo
Hide whitespace changes
Inline Side-by-side
banco_dados.md
View page @ 82c364fd
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
# Página do Banco de Dados # Página do Banco de Dados
Aqui deve ser explicado com modelos e explicações como o Banco de Dados foi construido, onde se deve focar em:
##### Banco de dados: **PostgreSQL** ##### Banco de dados: **PostgreSQL**
Escolhemos utilizar o banco de dados PostgreSQL, pois ele é um dos SGBDs Opensource mais avançados disponíveis hoje, com recursos avançados como: [PostgreSQL](https://pt.wikipedia.org/wiki/PostgreSQL) Escolhemos utilizar o banco de dados PostgreSQL, pois ele é um dos SGBDs Opensource mais avançados disponíveis hoje, com recursos avançados como: [PostgreSQL](https://pt.wikipedia.org/wiki/PostgreSQL)
...@@ -21,171 +19,32 @@ Escolhemos utilizar o banco de dados PostgreSQL, pois ele é um dos SGBDs Openso ...@@ -21,171 +19,32 @@ Escolhemos utilizar o banco de dados PostgreSQL, pois ele é um dos SGBDs Openso
* Estrutura para guardar dados Georreferenciados PostGIS * Estrutura para guardar dados Georreferenciados PostGIS
--- Como ele foi desenvolvido, com Imagens e Diagramas ## Modelo Lógico
![](https://tools.ages.pucrs.br/garbus/garbus-wiki/raw/feat/ModelagemDB/Images/db_garbus.png)
* o Collections(Entities)
* o ScriptSQL
##### Script SQL para criação do schema inicial do banco de dados:
```
CREATE TABLE IF NOT EXISTS TYPES_EVENTS (
ID SERIAL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR
);
CREATE TABLE IF NOT EXISTS ZONES (
ID SERIAL PRIMARY KEY,
NAME VARCHAR NOT NULL NOT NULL,
DESCRIPTION VARCHAR NOT NULL,
LONGITUDE NUMERIC,
LATITUDE NUMERIC
);
CREATE TABLE IF NOT EXISTS TRASH_STATUS (
ID SERIAL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL
);
CREATE TABLE IF NOT EXISTS TYPE_TRASH (
ID SERIAL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL
);
CREATE TABLE IF NOT EXISTS PROFILES (
ID SERIAL PRIMARY KEY,
NAME VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL
);
CREATE TABLE IF NOT EXISTS EVENTS (
ID SERIAL PRIMARY KEY,
DESCRIPTION VARCHAR,
CREATION_DATE TIMESTAMP NOT NULL,
PROBLEM_STATUS VARCHAR NOT NULL,
ID_TYPE_EVENTS INTEGER
);
ALTER TABLE EVENTS ADD CONSTRAINT FK_TYPE_EVENTS
FOREIGN KEY (ID_TYPE_EVENTS)
REFERENCES TYPES_EVENTS (ID);
##### Modelo atualizado
Para desenvolvimento do banco de dados, utilizamos a ferramenta para modelagem online ([DBDiagram](https://dbdiagram.io)), o que facilita a manter o modelo atualizado e colaborativo.
CREATE TABLE IF NOT EXISTS BUILDINGS ( [Link Modelo Garbus](https://dbdiagram.io/d/60b19c43b29a09603d170e44)
ID SERIAL PRIMARY KEY,
NAME VARCHAR NOT NULL,
LONGITUDE NUMERIC NOT NULL,
LATITUDE NUMERIC NOT NULL,
ID_ZONE INTEGER NOT NULL
);
ALTER TABLE BUILDINGS ADD CONSTRAINT FK_BUILDINGS_ZONES <a href="https://dbdiagram.io/d/60b19c43b29a09603d170e44"><img src="https://community.dbdiagram.io/uploads/default/original/1X/4431f78b1742115d112e87b93af510e8ce32d222.png" alt="DBDiagram" width="123" /></a>
FOREIGN KEY (ID_ZONE)
REFERENCES ZONES (ID);
CREATE TABLE IF NOT EXISTS USERS ( ## Collections(Entities)
ID SERIAL PRIMARY KEY,
EMAIL VARCHAR,
NAME VARCHAR NOT NULL,
LOGIN VARCHAR NOT NULL,
PASSWORD VARCHAR NOT NULL,
BLOCKED BOOLEAN NOT NULL DEFAULT FALSE,
DT_REGISTER TIMESTAMP NOT NULL,
ID_PROFILE INTEGER
);
ALTER TABLE USERS ADD CONSTRAINT FK_USERS_PROFILES Entities | Description
FOREIGN KEY (ID_PROFILE) --------- | ------
REFERENCES PROFILES (ID); trashes | Entidade responsável por armazenar detalhes da lixeira como, localização, ocupação e outros dados da lixeira
trash_status | Armazena os status possíveis da lixeira como, ativa e inativa
type_trash | Armazena o tipo de lixeira, papel, vidro, etc
CREATE TABLE IF NOT EXISTS USER_ZONE ( trashes_threshold | Armazena os valores de capacidade que irá gerar os alertas de cheia, vazia ou meio cheia
ID SERIAL PRIMARY KEY, trashes_events | Armazena os eventos gerados pelas lixeiras, como manutenção e capacidade
ID_USER INTEGER, buildings | Armazena os dados dos prédios como, localização e zona
ID_ZONE INTEGER zones | Armazena o nome e a localização da zona
); events | Armazena os tipos dos eventos
profiles |
ALTER TABLE USER_ZONE ADD CONSTRAINT FK_USER_ZONE
FOREIGN KEY (ID_USER)
REFERENCES USERS (ID);
ALTER TABLE USER_ZONE ADD CONSTRAINT FK_ZONE_USER
FOREIGN KEY (ID_ZONE)
REFERENCES ZONES (ID);
CREATE TABLE IF NOT EXISTS TRASHES (
ID SERIAL PRIMARY KEY,
BRAND VARCHAR NOT NULL,
DESCRIPTION VARCHAR NOT NULL,
CAPACITY FLOAT NOT NULL,
OCCUPATION FLOAT NOT NULL,
ID_STATUS INTEGER,
ID_TYPE INTEGER,
ID_BUILDING INTEGER,
ID_ZONE INTEGER,
LOCAL_DESCRIPTION VARCHAR,
LONGITUDE NUMERIC,
LATITUDE NUMERIC
);
ALTER TABLE TRASHES ADD CONSTRAINT FK_TRASHES_BUILDINGS
FOREIGN KEY (ID_BUILDING)
REFERENCES Buildings (ID);
ALTER TABLE TRASHES ADD CONSTRAINT FK_TYPE_LIV
FOREIGN KEY (ID_TYPE)
REFERENCES TYPE_TRASH (ID);
ALTER TABLE TRASHES ADD CONSTRAINT FK_TRASH_STATUS
FOREIGN KEY (ID_STATUS)
REFERENCES TRASH_STATUS (ID);
ALTER TABLE TRASHES ADD CONSTRAINT FK_ZONES_TRASHES
FOREIGN KEY (ID_ZONE)
REFERENCES ZONES (ID);
ALTER TABLE TRASHES ADD CONSTRAINT TRASH_BUILDING_OR_ZONE
CHECK (ID_ZONE IS NULL OR ID_BUILDING IS NULL);
CREATE TABLE IF NOT EXISTS TRASHES_EVENTS (
ID SERIAL PRIMARY KEY,
ID_EVENT INTEGER,
ID_TRASH INTEGER,
ID_USER INTEGER,
OCCUPATION FLOAT,
OTHERS VARCHAR,
DATE TIMESTAMP NOT NULL
);
ALTER TABLE TRASHES_EVENTS ADD CONSTRAINT FK_TRASHES_EVENTS_EVENTS
FOREIGN KEY (ID_EVENT)
REFERENCES EVENTS (ID);
ALTER TABLE TRASHES_EVENTS ADD CONSTRAINT FK_TRASHES_EVENTS_USERS
FOREIGN KEY (ID_USER)
REFERENCES USERS (ID);
ALTER TABLE TRASHES_EVENTS ADD CONSTRAINT FK_TRASHES_EVENTS_TRASH
FOREIGN KEY (ID_TRASH)
REFERENCES TRASHES (ID);
* o ScriptSQL
CREATE TABLE IF NOT EXISTS TRASHES_THRESHOLD ( ##### Script SQL para criação do schema inicial do banco de dados:
ID SERIAL PRIMARY KEY, \ No newline at end of file
MAX_OCCUPATION FLOAT,
COLOR VARCHAR NOT NULL,
ID_TRASH INTEGER NOT NULL
);
```
\ No newline at end of file
Clone repository
  • Backend
  • Gerenciamento do Projeto
  • Solução de Problemas: Prettier e quebras de linha
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • Workshops
  • arquitetura
  • banco_dados
  • configuracao
  • Home
  • horarios
  • instalacao
  • mockups
  • requisitos
View All Pages