[Project] DB 설계 (2) DB 설계 수정하기

이슬기·2024년 1월 30일
0

project

목록 보기
16/42

이전에 그룹웨어의 DB 설계 중 특정 직원 한 명의 상세정보에서 고등학교, 대학교, 대학원 학력을 조회, 입력, 수정, 삭제하는 글을 작성했었다.

하지만 학력과 학력구분 테이블이 1:1 관계이기 때문에 굳이 따로 테이블을 설계할 필요가 없다고 생각하여 이를 수정하고자 한다.

단, 학력구분 테이블에 있던 속성인 정렬순서는 여전히 사용하고자 한다. 학력구분명으로는 고등학교, 대학교, 대학원 순서로 정렬할 수 없기 때문이다.

따라서 학력 테이블의 속성은 다음과 같다.

  1. 학력코드: 학력 정보의 고유 식별자로 사용되는 기본키(PK)입니다.
  2. 기간: 학력의 기간을 나타내는 속성입니다.
  3. 학교명: 학력을 취득한 학교의 이름을 나타내는 속성입니다.
  4. 학과명: 학력을 취득한 학과의 이름을 나타내는 속성입니다.
  5. 졸업구분: 학력의 졸업 여부를 나타내는 속성입니다.
  6. 직원코드: 해당 학력 정보가 어떤 직원에 속하는지 나타내는 외래키(FK)입니다.
  7. 학력구분명: 학력이 고등학교, 대학교, 대학원 중 어떤 학력인지를 나타내는 속성입니다.
  8. 정렬순서: 학력구분명에 따라 정렬하기 위한 속성으로, 학력을 특정 순서로 정렬하기 위해 사용됩니다.

기존에 있던 학력구분코드(PK)는 필요 없으므로 삭제하고 총 8개의 속성이 학력 테이블에 속하게 된다.

필요한 쿼리문은 아래와 같이 정리하였다.

학력코드 시퀀스 생성 쿼리문

CREATE SEQUENCE 학력코드_seq START WITH 1 INCREMENT BY 1;

특정 직원의 학력 조회 쿼리문

SELECT *
FROM 학력
WHERE 직원코드 = '특정 직원의 코드'
ORDER BY 정렬순서;

특정 직원의 학력 입력 쿼리문

-- 고등학교 입력
INSERT INTO 학력 VALUES (학력코드_seq.NEXTVAL, '고등학교 기간', '고등학교명', '고등학교 학과', '졸업', '특정 직원의 코드', '고등학교', 1);

-- 대학교 입력
INSERT INTO 학력 VALUES (학력코드_seq.NEXTVAL, '대학교 기간', '대학교명', '대학교 학과', '졸업', '특정 직원의 코드', '대학교', 2);

-- 대학원 입력
INSERT INTO 학력 VALUES (학력코드_seq.NEXTVAL, '대학원 기간', '대학원명', '대학원 학과', '졸업', '특정 직원의 코드', '대학원', 3);

특정 직원의 학력 수정 쿼리문

-- 대학원 정보 수정 (학력코드를 사용하여 수정)
UPDATE 학력
SET 기간 = '수정된 기간', 학교명 = '수정된 학교명', 학과명 = '수정된 학과명', 졸업구분 = '수정된 졸업구분'
WHERE 학력코드 = '수정할 학력코드';

특정 직원의 학력 삭제 쿼리문

-- 고등학교 삭제 (학력코드를 사용하여 삭제)
DELETE FROM 학력 WHERE 학력코드 = '삭제할 학력코드';

0개의 댓글

관련 채용 정보