Version 10 (modified by 2 weeks ago) ( diff ) | ,
---|
Функционални карактеристики и нормализација
1. Менаџирање на мени и тагови (Menu, MenuTag)
Првична релација (не нормализирана): R = {menu_id, restaurant_id, item_name, category, price, description, dietaryInformation}
- "Margherita Pizza", "Pizza", 12.99, "Classic pizza with mozzarella", Vegetarian:Yes
Функциски зависности: menu_id → item_name, category, price, description, restaurant_id (секој menu_id ја определува информацијата за јадењето)
menu_id, tag_name → tag_value (комбинацијата на мени и таг дава одредена вредност)
Декомпозиција во 3НФ: R1 = {menu_id, restaurant_id, item_name, category, price, description} (Menu) R2 = {id, menu_id, tag_name, tag_value} (MenuTag)
2. Tables
Functional Dependencies:
- R = { TableID, TableNumber, Capacity, Status }
- TableID → TableNumber, Capacity, Status
Анализа на нормализација:
- 1NF: Атомски атрибути.
- 2NF: Секој атрибут без клуч е целосно зависен од TableID.
- 3NF: Нема преодни зависности.
Заклучок: Tables е во BCNF.
3. Menu
Functional Dependencies:
- R = { MenuItemID, Name, Description, Price, Category }
- MenuItemID → Name, Description, Price, Category
Анализа на нормализација:
- 1NF: Атомски атрибути.
- 2NF: Целосна функционална зависност од MenuItemID.
- 3NF: Нема преодни зависности.
Заклучок: Menu е во BCNF.
4. Reservation_History - Декомпозиција
Functional Dependencies:
- R = { ReservationID, MemberID, TableID, ReservationDate, ReservationTime, NumberOfPeople, Status }
- id → cancellation_reason, check_in_date, party_size, reservation_datetime, special_requests, status, restaurant_id, table_id, customer_id
Потенцијална декомпозиција за подобра организација:
- R1 (Reservation Info) = { ReservationID, ReservationDate, ReservationTime, NumberOfPeople, Status }
- R2 (Reservation Link) = { ReservationID, UserID, TableID }
Објаснување:
Информацијата за време, датум, број на луѓе и статус останува во R1.
Поврзаноста помеѓу членот (UserID) и масата (TableID) оди во R2.
5. App_user
Functional Dependencies:
- R = { id, address, email, first_name, last_name, membership_level, password, phone, registration_date, role }
- id → address, email, first_name, last_name, membership_level, password, phone, registration_date, role
Анализа на нормализација:
- 1NF: Сите атрибути се атомски.
- 2NF: Секој атрибут без клуч е целосно зависен од id.
- 3NF: Нема преодни зависности.
Заклучок: app_user е во BCNF.
6. Restaurants
Functional Dependencies:
- R = { restaurantID, address, cuisine_Type, name, operating_Hours, phone, rating, social_media_links, website }
- RestaurantID → Address, Cuisine_Type, Name, operating_Hours, phone, rating, social_media_links, website
Анализа на нормализација:
- 1NF: Сите атрибути се атомски.
- 2NF: Сите зависат од restaurantid.
- 3NF: Нема преодни зависности.
Заклучок: restaurants е во BCNF.