# rxsaturn/banco-de-dados-1 architecture

> Architecture diagram of the GitHub repository rxsaturn/banco-de-dados-1, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-07-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rxsaturn/banco-de-dados-1
- Repository: https://github.com/rxsaturn/banco-de-dados-1

## Overview

#### Purpose and Entry Points
This is a Portuguese-language database course repository, primarily for Banco de Dados I, with supplementary Banco de Dados II material. It is documentation- and assignment-driven, not an executable application. The root `README.md` provides only the repository identity.

Core starting points are the course PDFs at root (`bd1_01_intro_bd.pdf` through `bd1_06_nomaliza.pdf`), written exercises (`Exercício1.md`, `Exercício2.md`), and the academic-calendar database project under `Projeto/`.

#### BD1 Learning Sequence
The root PDFs define the foundational instructional progression: database introduction, database-project introduction, ER/DER modeling, relational modeling, model transformation, and normalization. Their ordered naming establishes the primary conceptual flow:
`bd1_01_intro_bd.pdf`, `bd1_03_der.pdf`, `bd1_04_modelo_relacional.pdf`.

Equivalent exercise sheets are grouped separately in `Exercicios/`, aligning practice work to each stage:
`Exercicios/bd1_exercicios_03_der.pdf`, `Exercicios/bd1_exercicios_06_normaliza.pdf`.

#### Academic Calendar Database Project
The principal applied artifact is an SGCA (Sistema de Calendários Acadêmicos) database-design project. Requirements drive the model and implementation sequence:
`Projeto/Requisitos Calendário Acadêmico.md`,
`Projeto/SGCA.pdf`.

Project stages are explicitly separated into requirements/modeling, database creation, and a database-connected application:
`Projeto/Sistema Calendários Acadêmicos - Parte 1 Corrigida.md`,
`Projeto/Sistemas de Calendários Acadêmicos - Criação do Banco.md`,
`Projeto/Sistemas de Calendários Acadêmicos - Aplicação Conectada ao Banco de Dados.md`.

The repository does not expose source code, schema files, database vendor configuration, or application runtime artifacts; the project materials are instructional specifications.

#### Modeling and Data-Design Flow
The intended database lifecycle is: capture academic-calendar requirements → create an ER/DER model → map entities and relationships to a relational schema → normalize relations → create/populate/query the database → connect an application to the database. This is supported by both the BD1 sequence and project documents, especially `Projeto/Requisitos Calendário Acadêmico.md` and `Projeto/Sistemas de Calendários Acadêmicos - Criação do Banco.md`.

The key architectural boundary is between conceptual/logical database design and physical implementation/application connectivity. No deployed service, API boundary, or persistence implementation is represented in the tree.

#### BD2 Advanced Database Systems Material
`banco_de_dados_II/` extends the curriculum into storage, access paths, query processing, transactions, recovery, and distributed data partitioning. Main instructional components include:
`banco_de_dados_II/Armazenamento de Dados e Hierarquia de Memória.md`,
`banco_de_dados_II/Índices em Árvore (B-Tree e B+Tree).md`,
`banco_de_dados_II/Sharding_e_Particionamento_em_Bancos_de_Dados_Distribuidos.md`.

Detailed modules under `banco_de_dados_II/documents/` cover relational algebra, query evaluation, external sorting, relational operators, transaction management, and failure recovery.

#### Executable/Generated Assets
There are two Python scripts, apparently educational or presentation-support utilities rather than application entry points:
`apresentacao_assets/generate_diagrams.py` and
`banco_de_dados_II/scripts/consistent_hashing_visualization.py`.

No dependency manifests, service definitions, database containers, CI configuration, or external-service integrations are present. Python is the only identifiable runtime from the tree, while the primary deliverable remains static course and project documentation.

Main entry points: [`bd1_03_der.pdf`](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_03_der.pdf) (ER/DER modeling), [`Projeto/Sistema Calendários Acadêmicos - Parte 1 Corrigida.md`](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistema%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Parte%201%20Corrigida.md) (Requirements and modeling), [`bd1_04_modelo_relacional.pdf`](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_04_modelo_relacional.pdf) (Relational modeling), [`bd1_06_nomaliza.pdf`](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_06_nomaliza.pdf) (Normalization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bd1["BD I Foundations"]
  node_intro["Database introduction<br/>course PDF"]
  node_er_model["ER/DER modeling<br/>course PDF<br/>[bd1_03_der.pdf]"]
  node_relational_model["Relational modeling<br/>course PDF"]
  node_normalization["Normalization<br/>course PDF"]
  node_practice["Modeling exercises<br/>exercise PDFs"]
end

subgraph group_project["SGCA Project"]
  node_requirements["Calendar requirements<br/>requirements document"]
  node_project_brief["SGCA brief<br/>project PDF<br/>[SGCA.pdf]"]
  node_conceptual_design["Requirements and modeling<br/>project stage"]
  node_database_creation[("Database creation<br/>project stage")]
  node_app_connectivity["Application connectivity<br/>project stage"]
end

subgraph group_bd2["BD II Advanced Topics"]
  node_storage["Storage and memory<br/>BD II module"]
  node_indexes["B-tree indexes<br/>BD II module"]
  node_query_processing["Query processing<br/>BD II documents"]
  node_transactions["Transactions and recovery<br/>BD II documents"]
  node_distributed_data["Sharding and partitioning<br/>BD II module"]
  node_hashing_visualizer["Consistent-hashing visualizer<br/>Python utility"]
end

node_diagram_generator["Diagram generator<br/>Python utility"]

node_intro -->|"introduces modeling"| node_er_model
node_er_model -->|"maps to"| node_relational_model
node_relational_model -->|"refined by"| node_normalization
node_er_model -.->|"practiced in"| node_practice
node_normalization -.->|"practiced in"| node_practice
node_project_brief -->|"frames"| node_requirements
node_requirements -->|"drives"| node_conceptual_design
node_er_model -.->|"applied as"| node_conceptual_design
node_relational_model -.->|"informs"| node_conceptual_design
node_conceptual_design -->|"maps design to implementation"| node_database_creation
node_normalization -.->|"guides relation design"| node_database_creation
node_database_creation -->|"supports connection stage"| node_app_connectivity
node_storage -->|"supports access paths"| node_indexes
node_indexes -->|"used by"| node_query_processing
node_query_processing -.->|"complements"| node_transactions
node_distributed_data -.->|"visualized by"| node_hashing_visualizer

click node_intro "https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_01_intro_bd.pdf"
click node_er_model "https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_03_der.pdf"
click node_relational_model "https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_04_modelo_relacional.pdf"
click node_normalization "https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_06_nomaliza.pdf"
click node_practice "https://github.com/rxsaturn/banco-de-dados-1/blob/main/Exercicios/bd1_exercicios_03_der.pdf"
click node_requirements "https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Requisitos%20Calend%C3%A1rio%20Acad%C3%AAmico.md"
click node_project_brief "https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/SGCA.pdf"
click node_conceptual_design "https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistema%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Parte%201%20Corrigida.md"
click node_database_creation "https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistemas%20de%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Cria%C3%A7%C3%A3o%20do%20Banco.md"
click node_app_connectivity "https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistemas%20de%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Aplica%C3%A7%C3%A3o%20Conectada%20ao%20Banco%20de%20Dados.md"
click node_storage "https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/Armazenamento%20de%20Dados%20e%20Hierarquia%20de%20Mem%C3%B3ria.md"
click node_indexes "https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/%C3%8Dndices%20em%20%C3%81rvore%20(B-Tree%20e%20B%2BTree).md"
click node_distributed_data "https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/Sharding_e_Particionamento_em_Bancos_de_Dados_Distribuidos.md"
click node_diagram_generator "https://github.com/rxsaturn/banco-de-dados-1/blob/main/apresentacao_assets/generate_diagrams.py"
click node_hashing_visualizer "https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/scripts/consistent_hashing_visualization.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_intro,node_er_model,node_relational_model,node_normalization,node_practice toneBlue
class node_requirements,node_project_brief,node_conceptual_design,node_database_creation,node_app_connectivity toneAmber
class node_storage,node_indexes,node_query_processing,node_transactions,node_distributed_data,node_hashing_visualizer toneMint
class node_diagram_generator toneNeutral
```

## Components

### BD I Foundations

Core database-design learning sequence.

- [Database introduction](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_01_intro_bd.pdf): course PDF · `bd1_01_intro_bd.pdf`
- [ER/DER modeling](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_03_der.pdf): course PDF · `bd1_03_der.pdf`
- [Relational modeling](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_04_modelo_relacional.pdf): course PDF · `bd1_04_modelo_relacional.pdf`
- [Normalization](https://github.com/rxsaturn/banco-de-dados-1/blob/main/bd1_06_nomaliza.pdf): course PDF · `bd1_06_nomaliza.pdf`
- [Modeling exercises](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Exercicios/bd1_exercicios_03_der.pdf): exercise PDFs · Practice sheets reinforce ER/DER and normalization. · `Exercicios/bd1_exercicios_03_der.pdf`

### SGCA Project

Academic-calendar database design assignment.

- [Calendar requirements](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Requisitos%20Calend%C3%A1rio%20Acad%C3%AAmico.md): requirements document · `Projeto/Requisitos Calendário Acadêmico.md`
- [SGCA brief](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/SGCA.pdf): project PDF · `Projeto/SGCA.pdf`
- [Requirements and modeling](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistema%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Parte%201%20Corrigida.md): project stage · Corrected first-stage SGCA design deliverable. · `Projeto/Sistema Calendários Acadêmicos - Parte 1 Corrigida.md`
- [Database creation](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistemas%20de%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Cria%C3%A7%C3%A3o%20do%20Banco.md): project stage · Instructional creation, population, and query stage. · `Projeto/Sistemas de Calendários Acadêmicos - Criação do Banco.md`
- [Application connectivity](https://github.com/rxsaturn/banco-de-dados-1/blob/main/Projeto/Sistemas%20de%20Calend%C3%A1rios%20Acad%C3%AAmicos%20-%20Aplica%C3%A7%C3%A3o%20Conectada%20ao%20Banco%20de%20Dados.md): project stage · Specification for connecting an application to the database. · `Projeto/Sistemas de Calendários Acadêmicos - Aplicação Conectada ao Banco de Dados.md`

### BD II Advanced Topics

Advanced database systems coursework.

- [Storage and memory](https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/Armazenamento%20de%20Dados%20e%20Hierarquia%20de%20Mem%C3%B3ria.md): BD II module · `banco_de_dados_II/Armazenamento de Dados e Hierarquia de Memória.md`
- [B-tree indexes](https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/%C3%8Dndices%20em%20%C3%81rvore%20(B-Tree%20e%20B%2BTree).md): BD II module · `banco_de_dados_II/Índices em Árvore (B-Tree e B+Tree).md`
- **Query processing**: BD II documents · Covers algebra, evaluation, sorting, and relational operators.
- **Transactions and recovery**: BD II documents · Covers transaction management and failure recovery.
- [Sharding and partitioning](https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/Sharding_e_Particionamento_em_Bancos_de_Dados_Distribuidos.md): BD II module · `banco_de_dados_II/Sharding_e_Particionamento_em_Bancos_de_Dados_Distribuidos.md`
- [Consistent-hashing visualizer](https://github.com/rxsaturn/banco-de-dados-1/blob/main/banco_de_dados_II/scripts/consistent_hashing_visualization.py): Python utility · Educational visualization script. · `banco_de_dados_II/scripts/consistent_hashing_visualization.py`

### Other components

- [Diagram generator](https://github.com/rxsaturn/banco-de-dados-1/blob/main/apresentacao_assets/generate_diagrams.py): Python utility · Presentation-support script, not an application entry point. · `apresentacao_assets/generate_diagrams.py`

## Connections

- Database introduction → ER/DER modeling: introduces modeling
- ER/DER modeling → Relational modeling: maps to
- Relational modeling → Normalization: refined by
- ER/DER modeling → Modeling exercises: practiced in
- Normalization → Modeling exercises: practiced in
- SGCA brief → Calendar requirements: frames
- Calendar requirements → Requirements and modeling: drives
- ER/DER modeling → Requirements and modeling: applied as
- Relational modeling → Requirements and modeling: informs
- Requirements and modeling → Database creation: maps design to implementation
- Normalization → Database creation: guides relation design
- Database creation → Application connectivity: supports connection stage
- Storage and memory → B-tree indexes: supports access paths
- B-tree indexes → Query processing: used by
- Query processing → Transactions and recovery: complements
- Sharding and partitioning → Consistent-hashing visualizer: visualized by
