diff --git a/server/sql_db/icedb b/server/sql_db/icedb
index 71aeb6857a09efb0d2d1b93f743e20fdaed071ed..f4914b4c4464c891c8d94884568fc5289c996d8e 100644
Binary files a/server/sql_db/icedb and b/server/sql_db/icedb differ
diff --git a/server/sql_db/schema.sql b/server/sql_db/schema.sql
index 3ac83acef029146dd4341548e86ee161273aeda3..864076dc7399c9f23a2f787497c922c608db7b2d 100644
--- a/server/sql_db/schema.sql
+++ b/server/sql_db/schema.sql
@@ -1,96 +1,62 @@
-CREATE TABLE Measurement (
-    MeasurementID INT PRIMARY KEY,
-    SensorID INT,
-    TimeMeasured DATETIME,
-    WaterBodyName TEXT,
-    FOREIGN KEY (SensorID) REFERENCES Sensor(SensorID),
-    FOREIGN KEY (WaterBodyName) REFERENCES BodyOfWater(Name)
+-- Body of water
+CREATE TABLE BodyOfWater (
+    Name TEXT PRIMARY KEY
 );
 
+-- Single sensor
 CREATE TABLE Sensor (
-    SensorID INTEGER PRIMARY KEY,
+    SensorID INT PRIMARY KEY,
     SensorType TEXT CHECK(SensorType IN ('LiDar', 'Magnetic', 'Other')),
     Active BOOLEAN
 );
 
-CREATE TABLE Data (
-    MeasurementID INT,
-    Latitude FLOAT,
-    Longitude FLOAT,
-    IceTop FLOAT,
-    IceBottom FLOAT,
-    CalculatedThickness FLOAT,
-    Accuracy FLOAT,
-    PRIMARY KEY (MeasurementID, Longitude, Latitude),
-    FOREIGN KEY (MeasurementID) REFERENCES Measurement(MeasurementID)
+-- Measurement taken at a given time
+CREATE TABLE Measurement (
+    MeasurementID INT PRIMARY KEY,
+    SensorID INT NOT NULL,
+    TimeMeasured DATETIME NOT NULL,
+    WaterBodyName TEXT NOT NULL,
+    WholeAverageThickness FLOAT NOT NULL,
+    FOREIGN KEY (SensorID) REFERENCES Sensor(SensorID),
+    FOREIGN KEY (WaterBodyName) REFERENCES BodyOfWater(Name)
 );
 
-CREATE TABLE Corner (
-    CornerID INT,
+CREATE TABLE SubDivision (
     MeasurementID INT,
-    CornerLatitude FLOAT,
-    CornerLongitude FLOAT,
-    PRIMARY KEY (CornerID, MeasurementID),
-    FOREIGN KEY (MeasurementID) REFERENCES Measurement(MeasurementID)
+    SubDivisionID INT,
+    GroupID INT NOT NULL,
+    MinimumThickness FLOAT NOT NULL,
+    AverageThickness FLOAT NOT NULL,
+    CenterLatitude FLOAT NOT NULL,
+    CenterLongitude FLOAT NOT NULL,
+    Accuracy FLOAT,
+    FOREIGN KEY (MeasurementID) REFERENCES Measurement(MeasurementID),
+    PRIMARY KEY (MeasurementID, SubDivisionID)
 );
 
-CREATE TABLE BodyOfWater (
-    Name TEXT PRIMARY KEY
-);
+-- Indexes
+CREATE INDEX idx_measurement_waterbodyname ON Measurement(WaterBodyName);
+CREATE INDEX idx_measurement_timemeasured ON Measurement(TimeMeasured);
 
+-- Test data
 INSERT INTO Sensor (SensorID, SensorType, Active) VALUES
 (1, 'LiDar', 1),
 (2, 'Magnetic', 1),
 (3, 'Other', 0);
 
-INSERT INTO Measurement (MeasurementID, SensorID, TimeMeasured, WaterBodyName) VALUES
-(1, 2, '2024-01-01 10:00:00', 'Mjosa'),
-(2, 2, '2024-02-04 11:00:00', 'Mjosa'),
-(3, 1, '2024-02-13 12:00:00', 'Mjosa');
-
--- Measurement 1
-INSERT INTO Data (MeasurementID, Latitude, Longitude, IceTop, IceBottom, CalculatedThickness, Accuracy) VALUES
-(1, 60.7070, 10.9771, 8.0, 3.0, 5.0, 1.0),
-(1, 60.7066, 10.9772, 7.5, 2.5, 5.0, 1.0),
-(1, 60.7067, 10.9773, 7.5, 2.5, 5.0, 1.0),
-(1, 60.7062, 10.9774, 7.5, 2.5, 5.0, 1.0),
-(1, 60.7067, 10.9775, 7.0, 2.0, 5.0, 1.0);
-
-INSERT INTO Corner (CornerID, MeasurementID, CornerLatitude, CornerLongitude) VALUES
-(1, 1, 60.7060, 10.9770),
-(2, 1, 60.7061, 10.9771),
-(3, 1, 60.7062, 10.9772),
-(4, 1, 60.7063, 10.9773);
-
--- Measurement 2
-INSERT INTO Data (MeasurementID, Latitude, Longitude, IceTop, IceBottom, CalculatedThickness, Accuracy) VALUES
-(2, 60.6366, 10.8171, 7.2, 2.2, 5.0, 1.5),
-(2, 60.6367, 10.8172, 7.0, 2.0, 5.0, 1.5),
-(2, 60.6368, 10.8172, 7.1, 2.1, 5.0, 1.5),
-(2, 60.6369, 10.8172, 7.3, 2.3, 5.0, 1.5),
-(2, 60.6367, 10.8173, 7.4, 2.4, 5.0, 1.5),
-(2, 60.6367, 10.8179, 7.5, 2.5, 5.0, 1.5);
+INSERT INTO BodyOfWater(Name) VALUES
+('Mjosa');
 
-INSERT INTO Corner (CornerID, MeasurementID, CornerLatitude, CornerLongitude) VALUES
-(1, 2, 60.6360, 10.8170),
-(2, 2, 60.6361, 10.8171),
-(3, 2, 60.6362, 10.8172),
-(4, 2, 60.6363, 10.8173);
+INSERT INTO Measurement (MeasurementID, SensorID, TimeMeasured, WaterBodyName, WholeAverageThickness) VALUES
+(1, 2, '2024-01-01 10:00:00', 'Mjosa', 5.8),
+(2, 2, '2024-02-04 11:00:00', 'Mjosa', 7.6),
+(3, 1, '2024-02-13 12:00:00', 'Mjosa', 4.1);
 
--- Measurement 3
-INSERT INTO Data (MeasurementID, Latitude, Longitude, IceTop, IceBottom, CalculatedThickness, Accuracy) VALUES
-(3, 60.7366, 10.8471, 7.5, 2.5, 5.0, 2.5),
-(3, 60.7369, 10.8471, 7.4, 2.4, 5.0, 2.5),
-(3, 60.7367, 10.8480, 7.3, 2.3, 5.0, 2.5),
-(3, 60.7368, 10.8481, 7.2, 2.2, 5.0, 2.5),
-(3, 60.7370, 10.8475, 7.1, 2.1, 5.0, 2.5);
+INSERT INTO SubDivision (MeasurementID, SubDivisionID, GroupID, MinimumThickness, AverageThickness, CenterLatitude, CenterLongitude, Accuracy)  VALUES
+(1, 1, 1, 3.2, 4.5, 60.765, 10.723, 1.2),
+(1, 2, 1, 2.8, 4.3, 60.780, 10.776, 1.1),
+(1, 3, 2, 4.1, 5.7, 60.768, 10.845, 1.3),
+(1, 4, 2, 3.5, 5.0, 60.749, 10.783, 1.4);
 
-INSERT INTO Corner (CornerID, MeasurementID, CornerLatitude, CornerLongitude) VALUES
-(1, 3, 60.7360, 10.8470),
-(2, 3, 60.7361, 10.8471),
-(3, 3, 60.7362, 10.8472),
-(4, 3, 60.7363, 10.8473);
 
-INSERT INTO BodyOfWater(Name) VALUES
-('Mjosa');