안녕하세요 길벗수험서 운영팀입니다.
[1]
1,3. 외래키는 필드 선언시 동시에 불가능합니다. 기본키와 유니크 옵션은 가능합니다.
다음과 같이 작성할 수 있겠네요.
-----------------
CREATE TABLE 직원
(사번 CHAR(15) PRIMARY KEY,
이름 CHAR(4) NOT NULL,
전화번호 CHAR(20) UNIQUE,
부서번호 CHAR(10),
경력 INT,
기본급 INT,
FOREIGN KEY(부서번호) REFERENCES 부서(부서번호),
CHECK (기본급 >= 1000000));
-----------------
2. 테이블명은 추가할 필요 없습니다. "references 테이블명(필드명)" 형식으로 외부 테이블의 경우 따로 테이블명을 추가하기 때문에 SQL 구문 분석 시 위와 같은 형식으로 테이블명을 판단합니다.
foreign key(필드명)으로 들어가는 테이블 없는 필드명은 무조건 create table로 생성되는 테이블의 필드라는 것을 기본적으로 인식하구요.
[2]
불가능합니다.
그룹함수를 사용할 때는 group by ~ having을 사용하셔야 합니다.
때문에 해당 코드의 경우 구문 오류로 실행이 되지 않죠.
참고로 group by 없이 count를 사용하는 것은 select의 필드부분에서는 사용할 수 있습니다.
아래와 같이요.
select count(이름) from 자격증;
이 경우 전체 테이블의 튜플 개수가 나옵니다. 어떤 필드를 적던간에요.
(때문에 보통 '*'를 사용하죠.)
[3]
예, 맞습니다.
단일 속성으로 이루어진 기본키를 지닌 테이블의 경우, '부분 함수적 종속'이 존재할 수 없으므로 제2정규화가 불가능합니다.
[4]
될 수 없습니다.
제 4정규형의 '다치 종속'은 제 2정규형의 '부분 함수적 종속'과 차이가 있습니다.
함수적 종속은 (필드 A)하나의 값에 종속되는 (필드 B)하나의 값입니다.
다치 종속은 (필드 A)하나의 값에 종속되는 (필드 B)여러 개의 값입니다.
예를 들어 보죠. 여러 빵을 먹는다고 가정하면,
사람A -> 빵의 개수
가 성립합니다. 사람B가 동일한 빵의 개수를 먹을 수는 있겠지만 해당 사람A가 먹은 빵의 개수는 사람A에게 종속됩니다.
사람A ->> 빵의 종류
가 성립합니다. 사람A가 먹은 빵의 종류는 다양합니다. 식빵, 크로와상 등 이 경우 여러개의 값이 사람A에게 종속되지만 여러 개의 값을 지니고 있기 때문에 다치 종속이라고 부릅니다.
(여기서도 사람B가 사람A가 먹은 동일한 빵 종류(ex:식빵)를 먹을 수 있습니다.)
제 4정규형은 이론적인 면 '다중 값 종속(다치종속)'을 제외하면 시험에 잘 출제되지 않아 예제가 존재하지 않습니다. 만약 구체적으로 이해하고 싶으시다면 검색을 통해 해당 예제를 접해보는 것도 좋은 방법이라고 생각합니다.
[5]
예, 가능합니다.
다만 실제 문제를 해결하실 때는 문제에서 제시한 테이블을 정규화하는데에 집중하시기 바랍니다.
제2정규화를 통해 도출된 테이블을 다시 제3정규화를 수행하는 것까지 언급해도 오답이 되지는 않겠으나, 실기시험은 채점자가 수동으로 채점하는 방식이기 때문에 가능한 단순하고 명확하게 적어주는 것이 좋습니다.
[6]
해당 문제에서는
생산번호 → 상품명, 상품가격, 생산자
상품명 → 상품가격
이 성립하여, '생산번호 → 상품명 → 상품가격'이 성립하기 때문입니다.
제3정규형은
완전 함수적 종속을 만족하고 단일키 또는 복합키가 존재하는 테이블에서,
식별자가 아닌 속성이 식별자가 아닌 다른 속성의 결정자인 경우 이를 분해합니다.
BCNF는
완전 함수적 종속을 만족하면서 복합키인 경우,
식별자가 아닌 속성이 복합키 중 하나의 속성에 대해 결정자일 때 이를 분해합니다.
제3정규형부터는 나오는 테이블의 유형이 거의 고정되어 있습니다. 속성명은 다르더라도 키의 개수나 형태가 거의 동일하죠. 교재의 예제와 문제들을 푸면서 어떤 형태가 어떤 정규형에 해당하는지 익숙해지는 것이 좋습니다.
행복한 하루되세요 :)
-
관리자2019-06-05 13:06:44
안녕하세요 길벗수험서 운영팀입니다.
[1]
1,3. 외래키는 필드 선언시 동시에 불가능합니다. 기본키와 유니크 옵션은 가능합니다.
다음과 같이 작성할 수 있겠네요.
-----------------
CREATE TABLE 직원
(사번 CHAR(15) PRIMARY KEY,
이름 CHAR(4) NOT NULL,
전화번호 CHAR(20) UNIQUE,
부서번호 CHAR(10),
경력 INT,
기본급 INT,
FOREIGN KEY(부서번호) REFERENCES 부서(부서번호),
CHECK (기본급 >= 1000000));
-----------------
2. 테이블명은 추가할 필요 없습니다. "references 테이블명(필드명)" 형식으로 외부 테이블의 경우 따로 테이블명을 추가하기 때문에 SQL 구문 분석 시 위와 같은 형식으로 테이블명을 판단합니다.
foreign key(필드명)으로 들어가는 테이블 없는 필드명은 무조건 create table로 생성되는 테이블의 필드라는 것을 기본적으로 인식하구요.
[2]
불가능합니다.
그룹함수를 사용할 때는 group by ~ having을 사용하셔야 합니다.
때문에 해당 코드의 경우 구문 오류로 실행이 되지 않죠.
참고로 group by 없이 count를 사용하는 것은 select의 필드부분에서는 사용할 수 있습니다.
아래와 같이요.
select count(이름) from 자격증;
이 경우 전체 테이블의 튜플 개수가 나옵니다. 어떤 필드를 적던간에요.
(때문에 보통 '*'를 사용하죠.)
[3]
예, 맞습니다.
단일 속성으로 이루어진 기본키를 지닌 테이블의 경우, '부분 함수적 종속'이 존재할 수 없으므로 제2정규화가 불가능합니다.
[4]
될 수 없습니다.
제 4정규형의 '다치 종속'은 제 2정규형의 '부분 함수적 종속'과 차이가 있습니다.
함수적 종속은 (필드 A)하나의 값에 종속되는 (필드 B)하나의 값입니다.
다치 종속은 (필드 A)하나의 값에 종속되는 (필드 B)여러 개의 값입니다.
예를 들어 보죠. 여러 빵을 먹는다고 가정하면,
사람A -> 빵의 개수
가 성립합니다. 사람B가 동일한 빵의 개수를 먹을 수는 있겠지만 해당 사람A가 먹은 빵의 개수는 사람A에게 종속됩니다.
사람A ->> 빵의 종류
가 성립합니다. 사람A가 먹은 빵의 종류는 다양합니다. 식빵, 크로와상 등 이 경우 여러개의 값이 사람A에게 종속되지만 여러 개의 값을 지니고 있기 때문에 다치 종속이라고 부릅니다.
(여기서도 사람B가 사람A가 먹은 동일한 빵 종류(ex:식빵)를 먹을 수 있습니다.)
제 4정규형은 이론적인 면 '다중 값 종속(다치종속)'을 제외하면 시험에 잘 출제되지 않아 예제가 존재하지 않습니다. 만약 구체적으로 이해하고 싶으시다면 검색을 통해 해당 예제를 접해보는 것도 좋은 방법이라고 생각합니다.
[5]
예, 가능합니다.
다만 실제 문제를 해결하실 때는 문제에서 제시한 테이블을 정규화하는데에 집중하시기 바랍니다.
제2정규화를 통해 도출된 테이블을 다시 제3정규화를 수행하는 것까지 언급해도 오답이 되지는 않겠으나, 실기시험은 채점자가 수동으로 채점하는 방식이기 때문에 가능한 단순하고 명확하게 적어주는 것이 좋습니다.
[6]
해당 문제에서는
생산번호 → 상품명, 상품가격, 생산자
상품명 → 상품가격
이 성립하여, '생산번호 → 상품명 → 상품가격'이 성립하기 때문입니다.
제3정규형은
완전 함수적 종속을 만족하고 단일키 또는 복합키가 존재하는 테이블에서,
식별자가 아닌 속성이 식별자가 아닌 다른 속성의 결정자인 경우 이를 분해합니다.
BCNF는
완전 함수적 종속을 만족하면서 복합키인 경우,
식별자가 아닌 속성이 복합키 중 하나의 속성에 대해 결정자일 때 이를 분해합니다.
제3정규형부터는 나오는 테이블의 유형이 거의 고정되어 있습니다. 속성명은 다르더라도 키의 개수나 형태가 거의 동일하죠. 교재의 예제와 문제들을 푸면서 어떤 형태가 어떤 정규형에 해당하는지 익숙해지는 것이 좋습니다.
행복한 하루되세요 :)