일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 딥러닝
- 데이터베이스
- 혼공머신
- 연습문제
- 머신러닝
- JDBC
- 컴퓨터구조
- CSS
- 자바스크립트
- JSP
- 정보처리기사필기
- 오블완
- 컴퓨터비전
- 정보처리기사실기
- 자바스크립트심화
- c언어
- 파이썬
- 자바 실습
- 티스토리챌린지
- 중학1-1
- 데이터분석
- rnn
- 디버깅
- 중학수학
- 개발일기
- SQL
- 상속
- html/css
- JSP/Servlet
- 자바
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
데이터 입출력 구현 4 - Session 35~36 : 관계형 데이터베이스의 제약 조건 본문
이제 관계형 데이터베이스의 제약 조건에 대해서 학습해볼 것이다.
세션 35 - 관계형 데이터베이스의 제약 조건 : 키(key)
학번과 과목명은 중복되어서 기본키로 설정할 수 없다. 이 둘을 묶는다 해도. 그럴 때는 이런 식으로 관계로 연결시키면 된다.
기본키와 연결된 것을 외래키라고 한다. 학번과 이름, 이름과 주민번호를 묶어서 기본키로 설정할 수 있게 된다. 이것을 슈퍼키라고 한다. 슈퍼키는 유일성을 만족하지만 최소성은 만족하지 못한다.
슈퍼키는 최소성을 만족시키지 못하므로 후보키가 될 수 없다.
앞서 보았던 테이블의 외래키에는 기본키에 없는 학번을 추가시킬 수 없다는 뜻이다.
이제 문제를 풀어보자. 1번은 과목번호이다. 2번은 유일성, 최소성이다. 3번은 외래키이고 4번은 서술형이라 넘어간다. 5번은 기본키이다. 3번은 틀렸다. 외래키와 슈퍼키가 많이 헤깔린다.
슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 유일성은 만족하지만 최소성은 만족하지 못한다. 대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 말한다. 외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미하는 것이다.
세션 36 - 관계형 데이터베이스의 제약 조건 : 무결성(Integrity)
중복되거나 null값을 가질 수 없는 것을 개체 무결성이라고 한다.
개체 무결성과 참조 무결성은 서술할 수 있도록 꼭 암기해야 한다.
도메인은 입력될 수 있는 값의 범위를 말한다. 예를 들어 대학교는 4학년까지, 초등학교는 6학년까지 입력할 수 있다.
1번 문제는 서술형이니 넘어간다. 나중에 모두 암기할 것이다. 2번은 개체, 3번은 애플리케이션이다. 4번에서 ①번은 지점 번호에 없는 번호가 참조되었으니 참조 무결성에 위반되었다. ②번은 NULL값이 있으므로 개체 무결성에 위배되었다.
4번 문제를 풀다가 이 개념을 확실히 이해했다. 2번도 왜 틀렸는지 알 것 같다 이것은 회원 번호에 없는 이름을 회원으로 참조했기 때문이다. 이는 참조 무혈성 제약 조건을 준수하지 않았다.
개체 무결성은 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질 수 없다는 규정이다.
학습을 마치고
강의도 잘 들었고 문제도 잘 풀었다. 2장 단원부터는 너무 빠르게 학습하는 걸 목표에 두지 않고 차분하게 읽고 생각하면서 내용을 기억하려고 노력했다. 이제 이 공부를 하는 것도 정말 재미있어졌다. 공부가 재미있으면 다른 건 끝난 것이다. 이미 합격을 한 거나 마찬가지다.
나머지 단원은 아침 공부 시간에 이어서 해볼 것이다.
'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글
데이터 입출력 구현 6 - Session 39 : 정규화(Normalization) (1) | 2024.09.25 |
---|---|
데이터 입출력 구현 5 - Session 37~38 : 관계대수와 관계해석 및 이상 / 함수적 종속에 대하여 (0) | 2024.09.25 |
데이터 입출력 구현 3 - Session 33~34 : E-R 모델 및 관계형 데이터베이스 모델 (0) | 2024.09.24 |
데이터 입출력 구현 2 - Session 31~32 : 데이터 모델의 개념 및 구성 요소 (0) | 2024.09.24 |
데이터 입출력 구현 1 - Session 29~30 : 데이터베이스 개요 및 설계 (0) | 2024.09.24 |