wiki:Normalization

Version 12 (modified by 175012, 8 days ago) ( diff )

--

Нормализација

Функциски зависности и нормализација Базата ќе се подели во неколку функционални категории:

  1. Менаџирање на клиенти и нивни податоци (CLIENT, CLIENT_TYPE, ADDRESS)
  2. Менаџирање на осигурителни полиси (POLICY, POLICY_TYPE, POLICY_COVERAGE)
  3. Менаџирање на авто осигурување (VEHICLE, VEHICLE_INSURANCE)
  4. Менаџирање на имотно осигурување (PROPERTY, PROPERTY_INSURANCE)
  5. Менаџирање на патничко осигурување (TRAVEL_INSURANCE, DESTINATION)

1. Менаџирање на клиенти и нивни податоци (CLIENT, CLIENT_TYPE, ADDRESS)

Првична релација (не нормализирана):

R = { client_id, client_name, client_email, client_phone, client_type_id, client_type_name, client_type_description, address_id, street, city, postcode }

ID (client_id) Name (client_name) Email (client_email) Phone (client_phone) Type ID (client_type_id) Type name (client_type_name) Type description (client_type_description) Address ID (address_id) Street City Postcode
1 John Doe john@… 123-456-789 1 Individual Personal client 101 Main St 123 Skopje 1000
2 Jane Smith jane@… 987-654-321 2 Corporate Business client 102 Oak Ave 456 Bitola 2000

Функциски зависности:

client_id → client_name, client_email, client_phone, client_type_id, address_id

client_type_id → client_type_name, client_type_description

address_id → street, city, postcode

Декомпозиција во 3НФ:

R1 = { client_id, client_name, client_email, client_phone, client_type_id, address_id }

R2 = { client_type_id, client_type_name, client_type_description }

R3 = { address_id, street, city, postcode }

2. Менаџирање на осигурителни полиси (POLICY, POLICY_TYPE, POLICY_COVERAGE)

Првична релација:

R = { policy_id, policy_number, policy_date, policy_type_id, policy_type_name, policy_type_description, client_id, coverage_id, coverage_type, coverage_description }

Функциски зависности:

policy_id → policy_number, policy_date, policy_type_id, client_id

policy_type_id → policy_type_name, policy_type_description

coverage_id → coverage_type, coverage_description

Декомпозиција во 3НФ:

R1 = { policy_id, policy_number, policy_date, policy_type_id, client_id }

R2 = { policy_type_id, policy_type_name, policy_type_description }

R3 = { policy_id, coverage_id }

R4 = { coverage_id, coverage_type, coverage_description }

3. Менаџирање на авто осигурување (VEHICLE, VEHICLE_INSURANCE)

Првична релација:

R = { vehicle_id, vehicle_registration, vehicle_make, vehicle_model, vehicle_year, client_id, policy_id }

Функциски зависности:

vehicle_id → vehicle_registration, vehicle_make, vehicle_model, vehicle_year

policy_id → client_id

Декомпозиција во 3НФ:

R1 = { vehicle_id, vehicle_registration, vehicle_make, vehicle_model, vehicle_year }

R2 = { policy_id, client_id }

R3 = { vehicle_id, policy_id } (за поврзување на осигурувањето со возилата)

4. Менаџирање на имотно осигурување (PROPERTY, PROPERTY_INSURANCE)

Првична релација:

R = { property_id, property_type, property_value, property_address_id, client_id, policy_id }

Функциски зависности:

property_id → property_type, property_value, property_address_id

policy_id → client_id

Декомпозиција во 3НФ:

R1 = { property_id, property_type, property_value, property_address_id }

R2 = { property_id, policy_id }

R3 = { policy_id, client_id }

5. Менаџирање на патничко осигурување (TRAVEL_INSURANCE, DESTINATION)

Првична релација:

R = { travel_insurance_id, travel_date, travel_destination_id, destination_name, destination_country, client_id, policy_id }

Функциски зависности:

travel_insurance_id → travel_date, travel_destination_id, policy_id, client_id

travel_destination_id → destination_name, destination_country

Декомпозиција во 3НФ:

R1 = { travel_insurance_id, travel_date, travel_destination_id, policy_id, client_id }

R2 = { travel_destination_id, destination_name, destination_country }


Со оваа декомпозиција, базата е во 3-та нормална форма (3НФ), што значи:

  • Ги елиминираме повторувањата
  • Ги одделуваме зависностите во посебни релации
  • Осигуруваме дека секој атрибут е директно зависен само од примарниот клуч на релацијата
Note: See TracWiki for help on using the wiki.