SQLD CBT 기출문제 예상문제 406번
다음 문제를 풀어보세요.
다음 중 아래 데이터 모델에 대한 설명으로 가장 거리가 먼 것을 고르시오.
[관계형 데이터베이스 설계]
다음은 고객의 주문 정보를 관리하기 위한 초기 데이터 모델의 일부입니다.
-- 고객 테이블
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(255),
Email VARCHAR(255),
Address VARCHAR(255)
);
-- 주문 테이블
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
OrderDate DATE,
TotalAmount DECIMAL(10, 2),
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
-- 주문 상세 테이블
CREATE TABLE OrderDetails (
OrderDetailID INT PRIMARY KEY,
OrderID INT,
ProductID INT,
Quantity INT,
UnitPrice DECIMAL(10, 2),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);
-- 상품 테이블
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(255),
Category VARCHAR(255),
Price DECIMAL(10, 2)
);
위 테이블 구조를 바탕으로 데이터 모델링을 진행하는 과정에서 다음과 같은 문제점이 발견되었습니다:
Orders 테이블에서 CustomerID 외에 주문과 직접적인 관련이 없는 고객의 주소 정보가 중복되어 저장될 가능성이 있습니다.
OrderDetails 테이블에서 ProductID와 ProductName이 함께 저장되어 상품 정보 변경 시 여러 레코드의 수정이 필요할 수 있습니다.
Customers 테이블에는 고객의 기본 정보 외에 이메일 주소와 같은 여러 속성이 하나의 필드에 혼합되어 저장될 수 있습니다.
Products 테이블에서 동일한 상품에 대해 여러 가격으로 기록될 가능성이 있으며, 이는 가격 정보의 일관성을 해칠 수 있습니다.
이러한 문제점을 해결하기 위해 정규화 프로세스를 적용하려고 합니다.