Pular para conteúdo

Modelo Lógico

Introdução

O Modelo lógico é uma representação abstrata de um banco de dados que descreve a estrutura dos dados e as relações entre eles. Ele é independente do banco de dados físico que detalha como os dados serão implementados.

O modelo lógico serve como um modelo para os dados usados e leva os elementos de modelagem de dados conceituais um passo adiante, adicionando mais informações a eles.

O modelo lógico incorpora todos os elementos de informação que são vitais para o funcionamento do dia a dia dos negócios. Um projeto lógico é a implementação do modelo lógico em um banco de dados real.

Ele descreve como os dados serão armazenados e organizados em tabelas, colunas e chaves primárias e estrangeiras. O projeto lógico é baseado no modelo lógico e é usado para criar um banco de dados físico que possa ser usado para armazenar e recuperar dados

Modelo Relacional

O modelo relacional usa uma coleção de tabelas para representar tanto os dados quanto as relações entre esses dados. Cada tabela tem várias colunas, e cada coluna tem um nome exclusivo. As tabelas também são conhecidas como relações.

O modelo relacional é um exemplo de modelo baseado em registro. Os modelos baseados em registro são assim chamados porque o banco de dados é estruturado em registros de vários tipos com formato fixo.

Cada tabela contém registros de um tipo específico. Cada tipo de registro define um número fixo de campos ou atributos. As colunas da tabela correspondem aos atributos do tipo de registro. O modelo de dados relacional é o modelo de dados mais amplamente utilizado, e a grande maioria dos sistemas de banco de dados atuais é baseada no modelo relacional. ¹

Dependências Funcionais

As dependências funcionais são uma parte importante do modelo relacional. Uma dependência funcional é uma relação entre dois atributos de uma tabela, onde um atributo determina o valor de outro. Em outras palavras, se o valor de um atributo A determina o valor de um atributo B, então dizemos que B é funcionalmente dependente de A.

As dependências funcionais são usadas para garantir que os dados em uma tabela sejam consistentes e precisos. Elas também são usadas para ajudar a normalizar as tabelas, o que pode melhorar o desempenho do banco de dados e reduzir a redundância de dados.

Normalização

A normalização é um processo importante na modelagem relacional. Ela é usada para garantir que os dados em uma tabela sejam consistentes e precisos, além de ajudar a reduzir a redundância de dados e melhorar o desempenho do banco de dados.

A normalização é baseada em dependências funcionais, que são relações entre dois atributos de uma tabela, onde um atributo determina o valor de outro. A normalização é dividida em várias formas normais, cada uma com um conjunto de regras que devem ser seguidas para garantir que a tabela esteja normalizada.

As formas normais mais comuns são a primeira forma normal (1NF), a segunda forma normal (2NF) e a terceira forma normal (3NF). Há também as formas normais mais avançadas como a quarta forma normal (4NF) e a forma normal de Boyce-Codd (FNBC). Cada forma normal tem um conjunto de regras que devem ser seguidas para garantir que a tabela esteja normalizada.

Dicionario de Dados

O dicionário de dados é uma ferramenta importante na modelagem de banco de dados relacionais. Ele contém informações detalhadas sobre as tabelas, colunas, tipos de dados, restrições e outras informações relevantes para o banco de dados.

O dicionário de dados é usado para documentar o modelo de dados e garantir que todos os desenvolvedores e usuários do banco de dados tenham uma compreensão clara dos dados armazenados e como eles são organizados. Ele também pode ser usado para ajudar a garantir a integridade dos dados e a consistência do modelo de dados.

Dicionario de Dados
Tabela Event
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
EventId Identificador de Evento Serial PK
EventType Identidica o tipo do evento Varchar 10 Not Null
Tabela ChatEvent
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
EventId Chave estrangeira para Event e
Identificador de Evento
Int FK / PK
IsUnique Define se o evento acontece
apenas uma vez
Boolean Default False
AlreadyFired Marcador para registrar
se o evento ja aconteceu
Boolean Default False
Comand Representa um linha de
comando em SQL que o sgbd vai realizar
quando o evento for chamado
Varchar 250 Not Null
Tabela InteractEvent
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
EventId Chave estrangeira para Event e
Identificador de Evento
Int FK / PK
AlreadyFired Marcador para registrar
se o evento ja aconteceu
Boolean Default False
ConsumesItem Define se o evento Consume
O item utilizado na interação
Boolean Default True
Comand Representa um linha de
comando em SQL que o sgbd vai realizar
quando o evento for chamado
Varchar 250 Not Null
Tabela RoomEvent
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
EventId Chave estrangeira para Event e
Identificador de Evento
Int FK / PK
AlreadyFired Marcador para registrar
se o evento ja aconteceu
Boolean Default False
Comand Representa um linha de
comando em SQL que o sgbd vai realizar
quando o evento for chamado
Varchar 250 Not Null
Tabela Phase
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
PhaseId Identificador unico da fase Serial PK
PhaseName Nome da fase Varchar 20 Unique / Not Null
PhaseDescription Descrição da fase Varchar 250 Not Null
Tabela Region
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
RegionId Identificador unico da região Serial PK
RegionName Nome da região Varchar 20 Unique / Not Null
RegionDescription Descrição da região Varchar 250 Not Null
PhaseId Chave estrangeira para
fase que a região Pertence
Int FK / Not Null
Requirement Chave estrangeira para
Equipment que representa um item
necessario para entrar na regiao
Int FK
IsVisited Marcador de região nunca visitada Boolean Default FALSE
Tabela RegionGeo
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
RegionId Chave estrangeira para regiao e
Identificador unico de RegionGeo
Int PK / FK
North Chave estrangeira referenciando
o id da região que intentifica a região Norte
Int FK
South Chave estrangeira referenciando
o id da região que intentifica a região Sul
Int FK
East Chave estrangeira referenciando
o id da região que intentifica a região Leste
Int FK
West Chave estrangeira referenciando
o id da região que intentifica a região Oeste
Int FK
Tabela Structure
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
StrucutureId Identificador Unico de Estrutura Serial PK
StrucutureName Nome da estrutura Varchar 20 Unique / Not Null
RegionId Chave estrangeira que informa a
região que a estrutura pertence
Int FK / Not Null
InitialRoom Chave estrangeira que informa a
Sala inicial da estrutura
Int FK / Not Null
Tabela Room
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
RoomId Identificador Unico de room Serial PK
RoomName Nome da sala Varchar 20 Unique / Not Null
RoomDescription Descrição da sala Varchar 250 Not Null
IsVisited Marcador de Sala nunca visitada Boolean Default FALSE
StructureId Chave estrangeira que informa a
Estrutura que a sala pertence
Int FK / Not Null
BlockedBy Chave estrangeira que informa se um
Objeto bloquear uma sala
int FK
EventId Chave estrangeira que informa um
Evento que pode ser gerado
Int FK
Tabela Conection
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
ConectionId Identificador Unico da conexão Serial PK
ConectionName Nome da conexão Varchar 20 Not Null
Room1Id Id do quarto que esta conectado Int FK
Room2Id Id do outro quarto que esta conectado Int FK
Tabela Location
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
LocationId Identificador unico da localização Serial PK
RegionId Chave estrangeira que informa
a região da localização
Int FK / Not Null
RoomId Chave estrangeira que informa
a sala da localização caso tenha
Int FK
Tabela Object
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
ObjectId Identificador Unico
de Objeto
Serial PK
ObjectName Nome do Objeto Varchar 20 Not Null
ObjectDescription Descrição do Objeto Varchar 20 Not Null
Locks Marcador se objeto esta
trancando uma sala
Boolean Default False
DescriptionOnInteract Descrição do Objeto ao
tentar realizar uma interação
Varchar 250 Not Null
ObjectLocationId Chave estrangeira para
Location caso o
objeto esteja no mapa
Int FK
ActivationItem Chave estrangeira para
Item caso seja necessario um
item para sua ativação
Int FK
EventId Chave estrangeira para
O evento gerado apos a ativação
Int FK
Tabela Character
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
CharacterId Identificador unico de personagem Serial PK
CharacterType Aponta para o tipo de personagem varchar 20 Not Null
Tabela NPC
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
CharacterId Chave estrangeira para Character e
Identificador unico de personagem
Int PK / FK
NpcName Nome do NPC Varchar 20 Unique / Not Null
NpcDescription Descrição do personagem no mapa Varchar 50 Not Null
IsWordMachine Define se o NPC é a "ENTIDADE" Boolean Default False
IsGod Define se o NPC é "DEUS" Boolean Default False
NpcLocationId Chave estrangeira que informa a
localização de um NPC
pode ser NULL
Int FK
EventId Chave estrangeira para
o evento gerado
ao interagir com o npc
Int FK / Not Null
Tabela PC
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
CharacterId Chave estrangeira para Character e
Identificador unico de personagem
Int PK / FK
PcName Nome do PC Varchar 4 Default 'NIKO'
KnowsGod Marcador que define se Niko
conhece DEUS
Boolean Default False
PcLocationId Chave estrangeira que informa a
localização do PC
Int FK
Tabela VisitedRegion
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
CharacterId Id do PC que visitou
determinadas regiôes
Int PK / FK
RegionId Id da Região que determinado
PC Visitou
Int PK / FK
Tabela Item
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
ItemId Identificador Unico de Item Serial PK
ItemType Identifica o tipo do item Varchar 10 Not Null
Tabela ItemMaterial
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
ItemId Identificador Unico e Chave
estrangeira para Item
Int PK / FK
ItemName Nome do item Varchar 20 Unique / Not Null
ItemDescription Descrição do item fisicamente Varchar 50 Unique / Not Null
ItemLocationId Caso o Item esteja no mapa ele
possui uma localização
Int FK
Tabela ItemEquipment
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
ItemId Identificador Unico e Chave
estrangeira para Item
Int PK / FK
ItemName Nome do item Varchar 20 Unique / Not Null
ItemDescription Descrição do item fisicamente Varchar 50 Unique / Not Null
ItemLocationId Caso o Item esteja no mapa ele
possui uma localização
Int FK
Tabela Combination
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
CraftID Identificador unico da receita Serial PK
Material1Id Chave estrangeira para o
Material usado no craft
Int FK / Not Null
Material2Id Chave estrangeira para o outro
Material usado no craft
Int FK / Not Null
Result1Id Chave estrangeira para o
Resultado primario do craft
Int FK / Not Null
Result2Id Chave estrangeira para o
possivel resultado secundario do craft
Int FK
equipmentId Chave estrangeira para o
possivel equipamento necessario no craft
Int FK
Tabela Inventory
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
CharacterId Chave estrangeira para o
Personagem dono do inventario
int PK / FK
ItemId Chave estrangeira para o
item no inventario
int PK / FK
Tabela Dialogue
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
DialogueId Identificador do Dialogo Serial PK
Text Texto do dialogo Varchar 250 Not Null
CharacterId Chave estrangeira para Character
Para representar o nome
de quem esta falando
int FK / Not Null
NextDialogue Continuação do dialogo int FK
HaveChoice Marcador caso dialogo ramifique Boolean Not Null
Tabela DialogueChoice
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
DialogueId Identificador e chave estrangeira para Dialogo Int PK, FK
ChoiceId Identificador unico e escolhas de determinado dialogo Serial PK
NextDialogue Chave estrangeira para o proximo
dialogo apos a escolha
Int FK
Tabela Command
Nome Descrição Tipo de Dado Tamanho Restrições de Dominio
FunctionId Identificador da função Serial PK
Function Função que o jogador insere
para controlar o jogo
Varchar 50 Not Null
PcID Chave estrangeira para o Pc que
esta sendo controlado pelos comandos
Int FK

Diagrama do Esquema Relacional

O esquema relacional é a representação do modelo de dados relacional em forma de diagrama, que mostra as tabelas, seus atributos e as relações entre elas.

O esquema relacional é uma ferramenta importante na modelagem de banco de dados, pois ajuda a visualizar a estrutura do banco de dados e a identificar as relações entre as tabelas.

Diagrama Entidade Relacionamento
Figura 1 : Diagrama do Esquema Relacional


Clique aqui para ver a imagem em tela cheia.
Ou clique aqui para baixar o arquivo do draw.io.

Histórico de Versão

Data Versão Descrição Autor
25/11/23 1.0 Criação do documento João Lucas

Bilbiografia

AVI SILBERSCHATZ, HENRY F. KORTH, S. SUDARSHAN. Database System Concepts. [s.l: s.n.].